моя программа использует boost :: unordered_map много, а карта насчитывает около 40 миллионов записей. Эта программа не делает вставки или удаления очень часто. Он просто случайно получает доступ к записям с использованием ключей.Как насчет сохранения индексов массива на карте
Мне интересно, улучшит ли производительность (с точки зрения скорости доступа к записям), если я сохраню свои значения ввода (около 1 КБ каждый) в плоском массиве (возможно, std :: vector), и я используйте boost :: unordered_map, чтобы сохранить сопоставление ключей с индексами в этот массив.
Спасибо, Цуй
Возможно. Не могли бы вы использовать unordered_map _every_ время, когда вы хотели найти индекс? Потому что, если это так, это будет _slower_, а не только 'unordered_map'. Если нет, используйте вместо него итератор в unordered_map вместо индекса. –