【发布时间】:2011-12-07 04:30:12
【问题描述】:
我正在使用unordered_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
【问题讨论】:
标签: hash hashtable unordered-map