是否有可能在c ++中重载stl :: map的allocator / deallocator?如果是,那怎么样? 任何帮助将不胜感激。
答案 0 :(得分:4)
是的,您可以将其指定为模板参数:
map<Key, Data, Compare, Alloc>
请参阅http://www.sgi.com/tech/stl/Map.html和http://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