作者通过将两个哈希值简化为其 std::bitset 表示形式并连接位集并查找组合位集的哈希值来组合两个哈希值。
虽然这篇文章的动机可能是介绍 c++ 14 功能,但我想知道这种方法与纯粹基于抗碰撞性的 boost hash_combine 函数相比有多好?
编辑:
我的意思是,与 boost 库的 hash_combine 方法相比,它在避免冲突方面表现如何?从性能角度来看,这是一个不错的选择,尽管我认为上述方法不会比 hash_combine 方法花费更长的时间。
我并没有对此进行任何认真的开发,只是四处探索,所以只是想知道该方法的优点。
最佳答案
我会这么说
- 四处探索并发现新东西很有趣(使用 std::bitset 自己动手),
- 但在认真的开发中,更喜欢使用像 boost 这样的库,这样可以加快开发速度并避免错误。此外,该库是开源的,已由数百名专业人士开发和阅读。
关于C++ 使用 std::bitset 组合哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40088609/