我在标准中发现这是无序关联容器中rehash
函数的后置条件:
发布:a.bucket_count()> a.size()/ a.max_load_factor()和 a.bucket_count()> = n。 (n是容器中的桶数)
我是否可以采取上述措施,表示当所有实施都满足上述条件之一时会触发自动重组?或者,实现是否可以自由决定何时重新进行更新,以上内容仅适用于rehash
函数?
答案 0 :(得分:8)
实施应保留load_factor() <= max_load_factor()
和load_factor() == size() / bucket_count()
。因此,在insert
期间可以进行自动重新散列以保持负载因子不变。
虽然load_factor()
不能超过max_load_factor()
,但我认为即使您可以证明不会违反此不变量,也无法保证在插入过程中不会进行任何重复操作。
max_load_factor
的定义是:
返回容器尝试保持负载的正数 因子小于或等于。容器自动增加 保持负载系数低于此值所需的桶数 号。