将typeid()。hash_code()存储为16位整数

时间:2013-03-22 15:53:19

标签: c++ hash types c++11 type-conversion

我想知道将typeid()。hash_code()返回的size_t存储到一个16位无符号整数的常量大小是否安全,或者这可能会产生冲突。这样做最安全的模式是什么?

谢谢!

1 个答案:

答案 0 :(得分:4)

这是安全的,也可能产生碰撞。关于碰撞没有什么“不安全”。碰撞只会略微降低性能,因为如果散列发生碰撞,则必须比较更多的完整值。

不匹配的哈希码确保值无法匹配。匹配的哈希码仅表示它们可能相同。散列码用于减少所需的完整比较次数 - 您只需要比较散列码匹配的内容的值。