Re[3]: MSVC std::unordered_map bucket_count()
От: Кодт Россия  
Дата: 18.12.16 23:08
Оценка: 7 (1)
Здравствуйте, Alexander G, Вы писали:

AG>Как бы ещё узнать, хорошая ли хеш функция.

AG>Допустим, я использую как ключи целые числа, реже строки, ещё реже — хендлы и указатели.
AG>Для всего этого есть стандартная хеш функция.

Возьми набор своих данных и поставь натурный эксперимент: сколько будет коллизий.

Вычисление хеша тоже не за нулевое время делается, хороший хеш может убить производительность посильнее коллизий.

У меня был такой опыт, когда надо было хранить в таблице пятёрки чисел; но природа этих чисел такова, что первые два почти уникально идентифицировали весь кортеж. Поэтому написал тупую формулу с умножением этих двух чисел на два больших простых числа, взятых наобум. И это ускорило реалтаймовую программу на какую-то ощутимую величину, по сравнению со стандартным хешированием кортежа.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.