c++ - 哈希函数和哈希表中的存储

标签 c++ hash hashtable hash-function

我正在学习编程,在教科书中它指出给定键 x、哈希表 A[] 和哈希函数 h() 键 x 它存储在 A[h(x)-1] 位置(使用 C++ 实现). 但是,将函数 h(x)=xmodM 用作哈希函数,其中 M 是哈希表的长度,我不知道 mod 0 的键存储在哪里。 例如,如果 M=10 和 x=60,我应该在哪里存储键值? 提前致谢!

最佳答案

这取决于 h() 的定义方式,如果它接受以 1 开头的值,那么这就是您在这个公式中有 -1 的原因: h(x)-1。 c++ 中的数组从 0 开始索引。

如果您在 C++ 中计算 60 除以 10 的提醒值,那么您将得到值 0 (60 % 10 = 0)。在这种情况下,减去 -1 是没有意义的。

关于c++ - 哈希函数和哈希表中的存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39489382/

相关文章:

c++ - CPU 时间测量

C#:在(哈希表)中存储对象实例

java - 使用枚举从哈希表获取数据的问题

c++ - 位运算会导致程序运行变慢吗?

android - NDK 需要 gnuSTL_static std::string 而不是 std::_ndk1::string

c++ - QT 不清楚的移位运算符行为

c - 调整哈希 C 大小时发生内存泄漏

java - 相同对象的两个列表具有不同的哈希码

python - 在 Python 3 中,frozenset 子类的实例应该是可哈希的吗?

powershell - 将两个哈希表连接成一个