c++ - 索引大于 64 位的哈希函数?

标签 c++ memory hash hashcode tr1

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

编辑: 糟糕的是,我假设了 64 位实现。

最佳答案

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

关于c++ - 索引大于 64 位的哈希函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502208/

相关文章:

c++ - 从 C++ 中的任何类型的文件中读取字节及其十进制值

c++ - 静态对象如何跨 DLL 和 Windows 二进制内存共享

c++ - 从 void* 转换/取消引用成员变量指针,这安全吗?

c - 中国人民银行 : get hash from an element

ruby-on-rails - Ruby 修改嵌套哈希的元素

c++ - 如何在 Win32 控制台中隐藏鼠标光标?

java - 将一个对象赋予其他对象的内存使用

c# - .Net C# ReadProcessMemory指针函数向后返回地址

c++ - C++中的大型动态数组

ruby 哈希 : can't convert String into Integer TypeError