Re[2]: MSVC std::unordered_map bucket_count()
От: Alexander G Украина  
Дата: 15.12.16 15:53
Оценка:
Здравствуйте, uzhas, Вы писали:

U>можно почитать тут: http://stackoverflow.com/questions/1145217/why-should-hash-functions-use-a-prime-number-modulus

U>коротко — если хеш функция хорошая, то неважно сколько корзин (то есть степень двойки оптимальна, ибо по модулю быстро считается)
U>если же хеш функция "не очень", то лучше сверху полирнуть простым модулем

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

С одной стороны, логично предположить, что стандартная реализация хеш таблицы рассчитана на работу со стандартной же хеш функцией на обычных данных.

С другой стороны, на грабли реализаций в VS 2012 того, что в boost работало хорошо, уже наступал:
[VC2012] проблема с std::this_thread::get_id()
VS 2012 call_once is broken
Вот и сомнения, может и в этом случае лучше старый добрый boost взять
Русский военный корабль идёт ко дну!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.