我正在使用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次碰撞。
获得这么多碰撞是否正常,我该怎么做才能避免这种情况?