如何使用现有的散列整数对散列表进行索引
How do I use an existing hashed integer to index a hash table?
我目前正在使用Boost for c++,并试图使用CRC32实现无序映射(又名哈希表)。据我所知,它将以字符串作为初始键,对其进行散列,并应用另一个操作,以便它适合桶的数量。
虽然在我的情况下,我想事先散列字符串键(在Boost中使用单独的CRC函数),然后使用该ID索引表。我需要帮助的问题是,CRC32散列有2^32个潜在值,我怀疑我是否需要一个包含2^32个元素的表。在这种情况下我该怎么做?
谢谢你的帮助!
使用基于c语言的模数运算符——%
:
int hashtableIndex = hashValue % hashtableSize;
但请注意,在c++中,结果的符号是"实现定义的",如果hashValue为负,则可以为负。因此,在执行%
操作之前,可能需要关闭hashValue中的符号位。
还请注意,如果已知hashtableSize
是2的幂,则可以简单地屏蔽hashValue
以获得索引:
int hashtableIndex = hashValue & (hashtableSize - 1);
相关文章:
- 跟随整数索引列表的自定义类迭代器
- 在子集化后将包含索引号的列表列表映射到标准索引序列
- CLI/C++dataGridView示例-设置comobox单元格列表的索引
- 对C++列表的基于索引的访问
- 存储将单个查询图像与多个图像的列表匹配的关键点索引
- C++娜娜 如何从全局列表框*指针访问列表框内的索引 0 上的按钮?
- 在索引中插入节点:链接列表未正确返回列表
- 如何在C 中以给定索引列表中的项目插入项目
- 获得给定向量的排列索引列表的最佳方法是什么?
- 列表和向量的索引之间的差异
- 图像中使用CUDA中的白色像素索引列表
- 如何获得具有多个索引的对象列表
- 用eCmascript Regex验证Python列表索引语法
- 将元素从一个向量复制到另一个向量的最有效方法,给定一个不被复制的索引列表
- 获取类型列表中的类型的索引
- 如何使用QREGEXP解析PACMD列表输出并查找接收器索引和名称
- 非冗余对列表中对象的索引
- C :通过索引从列表中获取对象无效
- 使用值为 std::shared_ptr的映射是具有多索引类列表的良好设计选择
- C++列表索引查询