我正在使用 anunordered_map<float, unsigned short>
在 C++ 中实现哈希表。
我知道在大多数情况下使用浮点数作为哈希表的键是一个坏主意,因为比较它们很容易出错。但是,在这些情况下,我正在从大文件中读取浮点数,并且它们的精度是已知且恒定的。
但是,我想知道如何unordered_map
散列我的浮点数以估计碰撞频率的详细信息。创建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