Я работаю над высокопроизводительным приложением, в котором все вызовы должны быть обоснованы. У меня есть карта, которая используется один раз в начале каждой транзакции для поиска, который я хотел бы улучшить. Карта загружается при запуске и не меняется после этого.
Ключ на карте ниже - это std :: string, но он может измениться на массив символов, если это необходимо. C или C ++ в качестве решения в порядке.
typedef stdext::hash_map<std:string, int> symbols_t;
Кто-нибудь знает какие-либо другие решения, которые устранят поиск или будут быстрее?
Заранее спасибо за помощь.
Дополнительная информация от правок:
1. В настоящее время hash_map содержит 350 000 элементов.
2. Каждое значение ключа обычно имеет длину от 4 до 10 символов.
3. Информация поступает по обратному вызову от стороннего API. Обратному вызову присваивается символ, который используется в качестве значения ключа при поиске карты. Остальная часть программного обеспечения извлекается из int, возвращаемого из поиска карты.
СПАСИБО: Спасибо всем за ваш вклад. Вы дали мне несколько возможностей для изучения. Я обязательно попробую это. Я ценю помощь.