清除Undered_map时对max_load_factor和bucket计数的影响
Effects on max_load_factor and bucket count when clearing an unordered_map
如果我执行unordered_map.clear()
,这会更改max_load_factor
还是max_bucket_count
?
没有-C++11标准中的表103说clear
只是擦除元素,而empty()
为true。您可以放心地假设它不会进行其他不相关的、未记录的更改。即使您已将max_load_factor
从默认值1.0更改为1.0,clear()
也不会再次对其进行修改。
在大多数系统上,max_bucket_count
很可能被硬编码为size_t(-1)
——可变系统内存、交换/虚拟内存等,竞争它的其他进程,动态操作系统缓冲区/内存使用等,使得返回有意义的值不切实际,所以大多数程序都不应该为此烦恼无论如何,没有任何逻辑理由认为清除容器会影响max_bucket_count
与clear
之前的值不同。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么擦除方法会影响结束方法
- 内联如何影响模块接口中的成员函数
- 为什么返回类型的'const'限定符对标有 __forceinline/内联的函数没有影响?
- 在容量内调整矢量大小时的性能影响
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 未达到的情况会影响开关外壳性能
- 类型为 "Bucket&"(未限定的 const 限定)的引用不能使用 "SortedList." 类型的值进行初始化 如何修复此错误?
- 循环仅对第一行正常工作.其他行不受 for 的影响
- 处理影响跨不同线程共享对象的定时回调的最佳方法是什么?
- 模板如何影响C++中隐式声明的规则?
- 命名空间信息会影响C++的可读性
- [[可能]]和[[不太可能]]影响程序汇编的简单示例?
- 如何保护非托管应用程序中的字符串不受进程转储的影响
- 检查nullptr是否100%保护内存布局不受segfault影响
- 为什么 std::set.erase(first, last) 会影响从中获取 (first, last) 的容器?
- 发布代码的 gdb 堆栈跟踪可读性如何影响 x64?
- QSql查询行受影响的结果
- 清除Undered_map时对max_load_factor和bucket计数的影响
- clear()是否影响std::unordered_set的bucket计数