Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如此处所示,标准库中提供的std::hash模板将返回一个类型的值std::size_t。但是,确切的类型std::size_t是平台相关和实现相关的,因此无法估计碰撞概率。 我看不到返回的任何优势std::size_t,所以我的问题是,为什么哈希函数不返回固定类型的值呢?
std::hash
std::size_t
的预期目的std::hash是实现哈希表,特别是标准库的无序关联容器。哈希表是一个数组,std::size_t是一个合适的选择,因为它是保证能够表示任何数组的所有索引的类型。虽然标准并未实际指定,但实际上这些标准容器很可能std::size_t用作尺寸类型。
如果需要散列函数进行系统间通信,std::hash不是一个好的选择。