boost::unordered_map отсутствует Reserve(), как std::unordered_map

Для моей следующей задачи мне нужно использовать очень большой хэш; так как у меня есть старый компилятор, я не могу использовать C++0x std::unordered_map, В идеале мне нужно позвонить reserve освободить место заранее для большого количества предметов. Я не могу найти этот метод в boost::unordered_map: есть ли место или функция, которая достигает того же?

2 ассоциативных контейнера одинаковы; я могу видеть rehash функция и тот же конструктор для управления количеством сегментов, но не функция для ряда элементов.

Вы можете помочь мне с этим?

1 ответ

Решение

reserve может быть подражать rehash как в таблице 103 в N3376.

a.rehash(n) 
Post: a.bucket_count() > a.size() / a.max_load_factor() 
      and a.bucket_count() >= n.

a.reserve(n) Same as a.rehash(ceil(n / a.max_load_factor()))
Другие вопросы по тегам