Здравствуйте, MaximE, Вы писали:
ME>wrote:
>> 1. Как можна при создании multimap, зарезервировать под него место, так что бы при вставке нового элемента не тратилось время на выделение памяти? Просто очень много вставок в процессе работы...
ME>Использовать собственный allocator, который будет выделять память из превыделенного пула.
Весело... Еще менеджер памяти самому писать
ME>Альтернативный вариант — map_light.
А где он этот map_light?
ME>Использовать в качестве контейнера отсортированный vector, для поиска использовать equal_range, для вставки upper/lower_bound.
А разве такой есть, что то не могу вспомнить...
>> 2. Можна ли в процессе работы менять ключ элемента? Если да, то как?
ME>Можно, но не inplace. Удалить элемент, изменить ключ, снова вставить.
Так и делаю по сути, но что мне это не нравится...
>> 3. Как ускорить процесс удаления элементов, у меня в мультимапе куча стрингов и профайлер показывает что процесс удаления этих стрингов дольше выполняется чем сам процесс их обработки...
ME>Тут варианты зависят от задачи.
Я и сам не могу понять, почему delete всех элементов так долго работает, помоему delete должна быть очень простой операцией...