哈希函数和哈希表中的存储
Hash Functions and storage in hash table
我正在学习编程,在教科书中,它指出给定键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++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 用C++将哈希表写入文件并从文件中恢复
- C++中的并发哈希表
- 在具有开放寻址的哈希表中插入节点 [优化逻辑]
- 与C++哈希表的基础知识混淆
- 调整大小和复制哈希表数组中的元素
- 带链接的基本哈希表
- C++哈希表中,两个相同的实现,但一个给出错误
- 如果索引不是整数,我们如何在 C++ 中插入哈希表
- 查找项目在哈希表中的位置
- 为什么C++ STL 哈希表 (unordered_map) 不接受向量作为键
- C++哈希表 - 如何解决自定义数据类型作为键的unordered_map冲突?
- 使用哈希表设置实现
- 创建用于存储某些指针值的哈希表
- 将函数名称和属性存储在哈希表中
- 如何存储需要随机选择和删除的数据,矢量,哈希表或其他
- 如何提高具有100万个元素和997个存储桶的哈希表的性能
- 在不使用预定义的C++函数的情况下,按字母顺序打印存储在哈希表中每个索引处的名称
- 哈希函数和哈希表中的存储