标签: c++ hash types c++11 type-conversion
我想知道将typeid()。hash_code()返回的size_t存储到一个16位无符号整数的常量大小是否安全,或者这可能会产生冲突。这样做最安全的模式是什么?
谢谢!
答案 0 :(得分:4)
这是安全的,也可能产生碰撞。关于碰撞没有什么“不安全”。碰撞只会略微降低性能,因为如果散列发生碰撞,则必须比较更多的完整值。
不匹配的哈希码确保值无法匹配。匹配的哈希码仅表示它们可能相同。散列码用于减少所需的完整比较次数 - 您只需要比较散列码匹配的内容的值。