如何识别std :: unordered_map是否经历过哈希冲突?

时间:2017-09-10 06:15:52

标签: c++ stl collision unordered-map hash-collision

如何识别std::unordered_map中的密钥是否经历过哈希冲突?

也就是说,如何识别是否存在任何碰撞链接?

1 个答案:

答案 0 :(得分:3)

您可以使用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;
    }
}
相关问题