清除Undered_map时对max_load_factor和bucket计数的影响

Effects on max_load_factor and bucket count when clearing an unordered_map

本文关键字:bucket 影响 load map Undered 时对 max 清除 factor      更新时间:2023-10-16

如果我执行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_countclear之前的值不同。