2

是否可以在 C++ 中重载 stl::map 的分配器/释放器?如果是,那怎么办?任何帮助,将不胜感激。

4

2 回答 2

4

是的,您可以将其指定为模板参数:

map<Key, Data, Compare, Alloc>

http://www.sgi.com/tech/stl/Map.htmlhttp://www.sgi.com/tech/stl/Allocators.html

于 2011-01-11T10:38:10.490 回答
3

是的,可以这样做。如果您注意到,所有 STL 容器都通过一个模板参数进行参数化,该参数指示应从何处获取内存。这通常使用 STD::allocator 类型完成,但您也可以提供自己的自定义分配器。由于分配器要求的各种设计限制,这并不容易做到,但有几个很好的链接。这是一个:

http://www.roguewave.com/Portals/0/products/sourcepro/docs/11.1/html/toolsug/11-6.html

于 2011-01-11T10:40:08.317 回答