boost :: hash_combine与简单的XOR运算的区别

8

10
将{1,2}和{2,1}的哈希值不同视为好事情,这在很多情况下都是被认为是一件好事... - Marc Glisse
1
请参阅https://dev59.com/4F7Va4cB1Zd3GeqPIk9C;这个领域已经被深入探讨过了。 - sehe
1个回答

4
有很多有序容器,比如列表。如果使用异或运算,那么你基本上会认为[0, 1][1, 0]是相同的。显然这不是这样的。覆盖无序容器的方法比强加有序容器的方法更容易,因为后者会产生很多冲突。异或运算还有很多其他令人讨厌的特性。例如,如果你有重复的元素,它们将互相抵消。

最终,哈希的想法是要合理地确保你不会对多个元素获得相同的值。异或运算本身不能满足这个属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接