3

如此处所示标准库中提供的std::hash模板将返回一个类型的值std::size_t。但是,确切的类型std::size_t是平台相关和实现相关的,因此无法估计碰撞概率。
我看不到返回的任何优势std::size_t,所以我的问题是,为什么哈希函数不返回固定类型的值呢?

4

1 回答 1

0

的预期目的std::hash是实现哈希表,特别是标准库的无序关联容器。哈希表是一个数组,std::size_t是一个合适的选择,因为它是保证能够表示任何数组的所有索引的类型。虽然标准并未实际指定,但实际上这些标准容器很可能std::size_t用作尺寸类型。

如果需要散列函数进行系统间通信,std::hash不是一个好的选择。

于 2019-09-11T12:28:36.830 回答