我在c++中使用list类,我不知道这里的分配器是什么意思
template < class T, class Allocator = allocator<T> > class list;
如果我有list <int> mylist,它是否意味着当一个元素被添加到列表中时,使用分配器分配整数类型的内存?你什么时候需要一个自定义的分配器?
我正在尝试实现自由职业者分配内存的算法。我试图编写的两个函数如下所示。
// allocates a block of memory of at least size words and returns the address of that memory or 0 if no memory could be allocated.
int64_t *mymalloc(int64_t size)
// deallocates the memory stored at addr. the address will either be one allocated by mymalloc or th
我不知道是否有人运行过,而libglibc++有_GLIBCXX_FULLY_DYNAMIC_STRING=1。我被困在如何解决这个错误上:
/usr/include/c++/9/bits/basic_string.tcc:596:30: error: no matching function for call to 'myapp::short_alloc<char, 131072>::short_alloc()'
596 | if (__n == 0 && __a == _Alloc())
|
看看,我意识到在创建向量时我从未使用过第二个参数。
std::vector<int> myInts; // this is what I usually do
std::vector<int, ???> myOtherInts; // but is there a second argument there?
从上面的链接来看,它是为了:
要使用的分配器对象,而不是构造新的对象。
或者,对于
分配器:用于定义存储分配模型的分配器对象的类型。默认情况下,使用T类型的分配器类模板,它定义了最简单的内存分配模型,并且与值无关。
我想这与内存管理有关。然而,我不知道如何使用