在c ++中重载stl :: map的Allocator和deallocator

时间:2011-01-11 10:33:29

标签: c++ allocator

是否有可能在c ++中重载stl :: map的allocator / deallocator?如果是,那怎么样? 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:4)

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

map<Key, Data, Compare, Alloc>

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

答案 1 :(得分:3)

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

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