5

对于具有三个 int 来标识唯一结构的简单 C++ 结构,如果对 a、b 和 c 的实际值了解不多,什么可以是一个好的散列函数实现。我需要使用结构作为 unordered_map 的键吗?

struct Key {

        int a, b, c;

    }
4

1 回答 1

1

将整个结构传递给 Murmurhash:https ://sites.google.com/site/murmurhash/

不要尝试自己混合这些值(例如上面的乘法、加法、异或等建议)。利用散列函数的全部意义在于它已经可以非常有效地混合它们。如果你预先混合,你只是带走了有用的熵。

于 2014-02-11T21:20:31.780 回答