如何判断std::unordered_map是否发生了哈希冲突?
How to identify whether or not std::unordered_map has experienced hash collisions?
如何判断std::unordered_map
中的key是否发生了hash冲突?
也就是说,如何识别是否存在任何碰撞链接?
您可以使用 bucket interface 及其 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;
}
}
如何判断std::unordered_map
中的key是否发生了hash冲突?
也就是说,如何识别是否存在任何碰撞链接?
您可以使用 bucket interface 及其 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;
}
}