为什么无序容器不提供定义最小负载系数的接口?

Lok*_* R. 8 c++ c++11

我试图理解为什么哈希表(unordered容器,如unordered_map或unordered_set)不提供查询或设置最小负载因子的接口.

假设c是一个unordered_set,我可以使用

c.max_load_factor()
Run Code Online (Sandbox Code Playgroud)

查询

c.max_load_factor(val)
Run Code Online (Sandbox Code Playgroud)

用于设置.

为什么C++ 11没有提供查询min_load_factor的接口?是否有实施细节,可以解释一下?

此外,Josuttis的C++ STL提到:

当容器中的元素数量缩小时,用于强制重新散列的最小负载因子不会受到影响.

Ser*_* K. 1

an 上的负载因子unordered_map影响哈希表中的冲突概率。例如,两个元素位于同一个桶中的概率。容器使用 的值max_load_factor作为阈值,强制增加桶的数量,从而导致重新散列。

不存在用户可控制的最小负载系数,因为它应该尊重容器中已有的元素数量。