gpt4 book ai didi

c++ - STL中分配器是什么意思

转载 作者:可可西里 更新时间:2023-11-01 17:36:01 26 4
gpt4 key购买 nike

我在 C++ 中使用列表类,我不知道这里的分配器是什么意思

template < class T, class Allocator = allocator<T> > class list;

如果我有list <int> mylist这是否意味着在将元素添加到列表时使用分配器分配整数类型的内存?什么时候需要自定义分配器?

最佳答案

是的。 allocator 是一种从内存使用中分解内存分配的方法。如果容器需要一些内存,而不是:

// too rigid, cannot allow custom allocation schemes
void* mem = ::operator new(someAmount);

你得到:

// flexible, allows custom allocation schemes
void* mem = myallocator.allocate(someAmount);

有一个标准分配器,std::allocator,它使用全局operator newoperator delete

您希望在任何需要以特殊方式进行分配的时候使用自己的分配器。这些情况可能是:从一些空闲列表中获取内存,从堆栈中分配等等。(通常用于优化目的,尽管您也可以使用自定义分配器记录统计信息)大多数时候,标准分配器工作得很好。

关于c++ - STL中分配器是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3331189/

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