gpt4 book ai didi

c++ - 对 C++ unordered_map 和散列冲突感到困惑

转载 作者:行者123 更新时间:2023-11-30 02:39:31 25 4
gpt4 key购买 nike

我读到 unordered_map 将具有相同散列的元素放入桶中,这就是它处理散列冲突的方式。然而,当我检查 insert function ,它说:

Each element is inserted only if its key is not equivalent to the key of any other element already in the container

这是否意味着我不能插入具有相同散列的元素?..我应该能够插入具有新散列的元素,因为 unordered_map 结构可以处理冲突,对吗?..我想我可以缺少一些东西。

最佳答案

一旦您意识到散列不一定是 key ,这些语句肯定可能是一致的。

一组不同的键可能会生成相同的哈希值,因此存储在同一个桶中,但这仍然允许限制重复键是不允许的。

例如,假设您有一个使用名字作为键的 friends 集合。散列函数(相当简单)“使用名称的第一个字母。

因此,虽然 Albert、Andrew、Adam、Bill、Benny 和 Chloe 是六个不同的键,它们只占三个不同的哈希值:

          A                 B            C    (buckets)
______/|\_____ / \ |
/ | \ / \ |
Albert Andrew Adam Bill Benny Chloe (keys)

关于c++ - 对 C++ unordered_map 和散列冲突感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29791277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com