【发布时间】:2015-07-05 04:53:12
【问题描述】:
使用 boost 库时,函数boost::hash_combine 的工作方式如下:
seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
http://www.boost.org/doc/libs/1_46_1/doc/html/hash/reference.html#boost.hash_combine
与简单的异或运算相比,这种方法有什么优势?
通过 XOR-ing,甚至可以使用散列函数来使用无序容器作为键,而这个是依赖于顺序的。
【问题讨论】:
-
拥有不同于 {2,1} 的 {1,2} 哈希通常被认为是一件好事...
-
请看stackoverflow.com/questions/8513911/…;这片领土被打死