大于 64 位的索引的哈希函数

Hash function for indices greater than 64-bits?

本文关键字:哈希 函数 索引 大于      更新时间:2023-10-16

从C++标准来看,哈希函数std::tr1::hash计算范围为64位的哈希值(如果我错了,请纠正我)。但出于好奇,是否有任何机制可以生成范围大于 64 位的哈希值。我的问题可能看起来很奇怪,因为我们使用的整个内存都在 64 位范围内,但我想知道我们如何计算(比方说)大小为 80 位的哈希值?

编辑:我的错,我假设64位实现。

C++11 中的各种哈希函数(我想对应于到 TR1) 将哈希值计算成一个size_t,其大小取决于实现(但 32 位为 32 位构建,64 位构建为 64 位)。 如果您需要哈希更大的尺寸,然后你必须自己计算;你甚至可能必须定义一个更大的积分类型来支持计算它。 (不能在 中返回 80 位哈希代码如果size_t仅为 64 位,则size_t