如何识别在std::unordered_map
中的键是否经历了哈希碰撞?
也就是说,如何确定是否存在任何冲突链接?
如何识别在std::unordered_map
中的键是否经历了哈希碰撞?
也就是说,如何确定是否存在任何冲突链接?
bucket_size
方法。std::unordered_map<int, int> map;
bool has_collision = false;
for(size_t bucket = 0; bucket < map.bucket_count(); bucket++) {
if(map.bucket_size(bucket) > 1) {
has_collision = true;
break;
}
}
if (map.bucket_count() < map.size())
可以快速检查是否有任何冲突,以避免在许多情况下使用 for 循环。 - phuclv