Ребята, я использую метод динамического программирования для решения проблемы. Ниже приведен краткий обзор подходаИспользование неупорядоченной карты boost
- Каждое генерируемое значение идентифицируется с использованием 25 уникальных ключей.
- Я использую boost :: hash_combine для генерации семян для хеш-таблицы с использованием этих 25 ключей.
хранить значения в хэш-таблице объявлен
boost::unordered_map<Key_Object, Data_Object, HashFunction> hashState;
я сделал временную профилирование на моем алгоритме и обнаружил, что почти 95% времени выполнения затрачивается в направлении извлечения/вставки данных в хэш-таблицу.
Это были подробности моей хэш-таблицы
hashState.size() 1880
hashState.load_factor() 0.610588
hashState.bucket_count() 3079
hashState.max_size() 805306456
hashState.max_load_factor() 1
hashState.max_bucket_count() 805306457
Я следующие два вопроса
Есть ли что-нибудь, который я могу сделать, чтобы улучшить производительность вставки хэш-таблицы в/извлечения операции?
C++ STL имеет hash_multimap, который также соответствовал бы моим требованиям. Как повысить библиотеки unordered_map сравнить с hash_multimap с точки зрения вставить/получить производительность.
Проверьте распределение размеров ковша. Возможно, ваша хеш-функция плоха. – doublep