gpt4 book ai didi

c++ - 具有 STL Vectors 的模板函数因新分配器而中断

转载 作者:行者123 更新时间:2023-11-28 00:52:24 26 4
gpt4 key购买 nike

我有很多定义如下的函数:

template<typename T>
void myFunction1(vector<T>& vin);

重点是,我输入了一个 STL vector 并做了一些工作。

我最近需要将默认分配器更改为客户分配器。这似乎破坏了所有功能,除非我将定义更改为:

template<typename T, typename Alloc>
void myFunction1(vector<T,Alloc>& vin);

为了让它更复杂,我不会在所有情况下都使用重载分配器..

这是否意味着我必须用两个定义重写每个函数,一个带有分配器模板,另一个没有分配器定义?我真的希望这不是答案...

最佳答案

一个更简单的解决方案可能是根据迭代器来实现您的函数,就像在标准库算法中所做的那样:

template <typename Iterator>
void myFunction1(Iterator1 first, Iterator2 last) { .... }

关于c++ - 具有 STL Vectors 的模板函数因新分配器而中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com