8

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

说 c 是 unordered_set,我可以使用

c.max_load_factor()

用于查询

c.max_load_factor(val)

用于设置。

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

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

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

4

1 回答 1

1

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

没有用户可控制的最小负载因子之类的东西,因为它应该尊重容器中已有元素的数量。

于 2013-08-19T11:03:08.267 回答