gpt4 book ai didi

c++ - unordered_map 的拷贝是否具有完全相同的桶

转载 作者:搜寻专家 更新时间:2023-10-31 01:28:40 24 4
gpt4 key购买 nike

据我了解,在填充 unordered_map 时,unordered_map 中的桶数量意外增加。

如果我执行 unordered_map 的复制(到另一个 unordered_map),可以保证会有完全相同的对。但他们会在同一个桶里吗?桶的数量会相同吗?

我不知道桶的创建机制,也没有找到简短的解释,它必须如何在标准中实现。但是如果桶的数量可能依赖于插入、分配等的顺序,那么在复制之后我们可能会得到不同数量的桶,或者在那里有不同的分布(即使项目是相同的)。是真的吗? boost 的实现和 gcc 的标准实现?

最佳答案

复制 unordered_map 时,指定复制最大加载因子,而不是“当前”加载因子。

复制构造和复制赋值的入口都包括以下内容

In addition to the requirements of Table 64, copies the hash function, predicate, and maximum load factor.

[unord.req]

一般来说,这意味着桶的数量可能不同,因此元素在拷贝中的桶中的分布也不同。

关于c++ - unordered_map 的拷贝是否具有完全相同的桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51592794/

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