std::unordered_map如何区分同一bucket中的值

How does std::unordered_map differentiate between values in the same bucket?

本文关键字:bucket 何区 unordered map std      更新时间:2024-09-23

我知道std::unordered_map通过在bucket中链接具有相同哈希的密钥来处理密钥哈希冲突(我认为使用链表(。我的问题是,它如何知道同一个bucket中的哪个值对应于哪个键?

我的天真想法是,每个值都存储在std::pair中,是这样做的吗?

是的,基本上就是这样做的。请记住,关键是数据的部分。使用映射可以做的一件事是遍历其键/值对。如果不存储密钥本身,即使使用完美的哈希,这也是不可能的。