是否unrdered_map的副本将具有完全相同的bucket
Does copy of unordered_map will have exactly same buckets
据我所知,在填充unordered_map
时,unordered_map
中的桶数量意外增加。
如果我执行unordered_map
(到另一个unordered_map
(的复制,则可以保证会有完全相同的对。但他们会在同一个桶里吗?水桶的数量会相同吗?
我不知道bucket的创建机制,也没有找到简短的解释,即它必须如何在标准中实现。但是,如果存储桶的数量可能取决于插入、分配等的顺序,那么在复制之后,我们可能会得到不同数量的存储桶,或者不同的分布(即使项目相同(。这是真的吗?boost的实现和gcc的标准实现?
复制unordered_map
时,指定的是最大负载系数,而不是"当前"负载系数。
副本构建和副本分配的条目都包括以下
除了表64的要求外,还复制了散列函数,谓词和最大负载因子。
[unord.req]
一般来说,这意味着可能存在不同数量的桶,从而在副本中将元素不同地分布到桶中。
相关文章:
- 类型为 "Bucket&"(未限定的 const 限定)的引用不能使用 "SortedList." 类型的值进行初始化 如何修复此错误?
- 是否unrdered_map的副本将具有完全相同的bucket
- boost::unordered_multimap:有效地获取bucket中的所有元素
- 是否可以通过bucket迭代器从std::unordered_set中删除元素
- 如何使用bucket排序对一组字符串进行排序
- bucket排序的实现中出错
- 清除Undered_map时对max_load_factor和bucket计数的影响
- 用c++编写bucket排序
- clear()是否影响std::unordered_set的bucket计数
- 当键不存在时,返回unordered_multimap::bucket()的值
- 通过local_it在bucket中迭代时,unordered_multimap中的冲突
- 哈希表bucket实现