Распределитель перегрузки и деллокатор stl :: map в c ++ - PullRequest
2 голосов
/ 11 января 2011

Можно ли перегрузить распределитель / освобождающий элемент stl :: map в c ++? Если да, то как? Любая помощь будет оценена.

Ответы [ 2 ]

4 голосов
/ 11 января 2011

Да, вы можете указать его в качестве аргумента шаблона:

map<Key, Data, Compare, Alloc>

См. http://www.sgi.com/tech/stl/Map.html и http://www.sgi.com/tech/stl/Allocators.html

3 голосов
/ 11 января 2011

Да, это возможно. Если вы заметите, все контейнеры STL параметризованы через аргумент шаблона, указывающий, откуда следует получать память. Обычно это делается с типом STD :: allocator, но вы также можете предоставить свой собственный распределитель. Это нелегко сделать из-за различных конструктивных ограничений в требованиях распределителя, но есть несколько хороших ссылок. Вот один из них:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...