我正在使用boost::unordered_map
一个自定义结构,它或多或少是一个整数向量,并且有一个如下所示的自定义哈希函数:
std::size_t seed = 0;
for (int i = 0; i < myvec.size(); ++i)
boost::hash_combine(seed, myvec[i]);
return seed;
当myvec
大小为 3 并且我用 1M 元素 1:100 x 1:100 x 1:100 填充散列(因此每个元素myvec
都是从 1 到 100 的整数)我得到大约 330,000 次冲突。
发生这么多碰撞是否正常,我该怎么做才能避免这种情况?