5

rehash我在标准中发现这是无序关联容器中函数的后置条件:

发布:a.bucket_count() > a.size() / a.max_load_factor()a.bucket_count() >= n。(n 是容器中的桶数)

我是否可以将上述内容视为在所有实现都满足上述任一条件时触发自动重新散列?或者,实现是否可以自由决定何时重新散列,而上述内容仅与rehash功能有关?

4

1 回答 1

8

实施应保持load_factor() <= max_load_factor()load_factor() == size() / bucket_count()insert因此,在保持负载因子不变的过程中,可能会发生自动重新散列。

尽管load_factor()不能超过max_load_factor(),但我认为即使您可以证明不会违反此不变量,也不能保证在插入期间不会进行重新散列。

定义为max_load_factor

返回容器尝试保持负载因子小于或等于的正数。容器会根据需要自动增加存储桶的数量,以将负载系数保持在该数量以下。

于 2012-03-26T23:44:03.210 回答