相关疑难解决方法(0)

如何用64位输出创建一个好的hash_combine(灵感来自boost :: hash_combine)

目前Boost具有hash_combine函数,该函数输出32位无符号整数(确切地说,size_t).一些参考:

http://www.boost.org/doc/libs/1_43_0/doc/html/hash/reference.html#boost.hash_combine

http://www.boost.org/doc/libs/1_43_0/doc/html/hash/combine.html

boost :: hash_combine中的幻数

我想探讨如何创建64位版本的hash_combine.

第一件事是获得64位的黄金比例或任何其他无理数.

第二部分是使用轮班.这部分相当棘手,我想询问是否有最佳实践或指导使用转移来获取哈希值?或者像原始代码一样选择班次:

seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); 
Run Code Online (Sandbox Code Playgroud)

是随机的?

另外如何评估输出hash_combine以确保它不会产生比原始哈希函数更多的冲突hash_value

c++ hash boost

8
推荐指数
1
解决办法
4496
查看次数

标签 统计

boost ×1

c++ ×1

hash ×1