Я использую unordered_map> float, unsigned short> для реализации хеш-таблицы в C ++.
Я знаю, что использование float в качестве ключей хеш-таблицы - это ПЛОХАЯ идея в большинстве случаев, потому что сравнение ихподвержен ошибкамТем не менее, в этих условиях я читаю значения с плавающей точкой из больших файлов, и их точность известна и постоянна.
Однако я хотел бы узнать подробности того, как unordered_map хэширует мои значения с плавающей точкой, чтобы оценить частоту столкновений.,Я не переопределяю реализацию хэша по умолчанию, когда создаю неупорядоченную карту.Согласно документации, хэш-функцией по умолчанию является std :: hash> Key>.Что в моем случае является std :: hash> float>.Однако, когда я просматриваю документацию по std :: hash, она определяется только для определенных «аргументов шаблона типа char *, const char *, crope, wrope и встроенных целочисленных типов».
Кто-нибудь знает, какая функция вызывается для хеширования значений, когда я добавляю их в unordered_map?
unordered_map - http://msdn.microsoft.com/en-us/library/bb982522.aspx
std :: hash - http://www.sgi.com/tech/stl/hash.html#1