对于一个简单的C ++结构,它有三个整数来标识一个独特的结构,如果对a,b和c的实际值不太了解,那么可以是一个好的散列函数实现。我需要使用struct作为unordered_map的键吗?
struct Key {
int a, b, c;
}
答案 0 :(得分:1)
将整个结构传递给Murmurhash:https://sites.google.com/site/murmurhash/
不要尝试自己混合这些值(例如上面的建议乘以,添加,xor等)。利用哈希函数的重点是它可以非常有效地混合它们。如果你预先混合,你只是带走了有用的熵。