无序关联容器何时发生重新哈希
When does rehashing occur for unordered associative containers?
我在标准中发现了这一点,作为无序关联容器中rehash
函数的后条件:
帖子:a.bucket_count()>a.size()/a.max_load_factor()和a.bucket-count()>=n。(n是容器中的桶数)
我是否可以认为,当所有实现都满足上述任一条件时,就会触发自动重新哈希?或者,实现是否可以自由决定何时重新散列,并且以上内容仅适用于rehash
函数?
实现应保留load_factor() <= max_load_factor()
和load_factor() == size() / bucket_count()
。因此,在insert
期间可以进行自动重新灰化以保持负载因子不变。
虽然load_factor()
不能超过max_load_factor()
,但我不认为可以保证在插入过程中不会进行重新哈希,即使你可以证明这个不变量不会被违反。
max_load_factor
的定义为:
返回容器试图保持负载的正数因子小于或等于。容器自动增加保持负载系数低于此值所需的铲斗数量数字
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 使用Qt C++计算类似Git的SHA1哈希
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 用C++将哈希表写入文件并从文件中恢复
- c++找不到具有相同哈希的无序集合元素
- 哈希文件递归并保存到矢量Cryptopp中
- 对 pair<pair<int,int>pair<int,int unordered_map进行哈希处理>>
- 直接在 unordered_map 的方法中使用哈希,而不是生成哈希的用户定义对象
- 如何为字符串生成唯一但一致的 N 位哈希(小于 64 位)?
- 使用对象的基类部分模板专用化对对象进行哈希处理::哈希
- boost::包含提升单元的元组的哈希值
- 使用 Key 对 C++ 中的哈希映射进行排序. 无法排序
- C++中的并发哈希表
- 哈希映射使用 nullptr c++ 初始化节点的动态数组
- 在具有开放寻址的哈希表中插入节点 [优化逻辑]
- 与C++哈希表的基础知识混淆
- 如何为位集找到/实现一个好的哈希函数
- 将新元素插入哈希表
- 无序关联容器何时发生重新哈希