2012-03-26 5 views
4

私は順不同連想コンテナでrehash関数の事後条件として、標準でこれを見つけた:順序付けされていない連想配列では、いつ再ハッシュが発生しますか?

ポスト:a.bucket_count()> a.size()/ a.max_load_factor() a.bucket_count()> = n。 (N容器内のバケットの数)

Iは、上記の条件のいずれかが、すべての実装のために満たされた場合、自動再ハッシュがトリガされることを意味する上記を取ることができますか?あるいは、実装が自由に再ハッシュを決定するために自由であり、上記は関数rehashにのみ関係しますか?

答えて

7

実装では、load_factor() <= max_load_factor()load_factor() == size()/bucket_count()を保持します。したがって、ロード・ファクターを不変に保つために、insertの間に自動再ハッシュが発生する可能性があります。

load_factor()max_load_factor()を超えることはできませんが、この不変量が違反しないことを証明できる場合でも、挿入中に再ハッシングが行われないという保証はないと思います。 max_load_factorため

定義は:

容器試みが 因子未満またはそれに等しい負荷を維持することが正数を返し。コンテナは自動的に負荷率をこの数値以下に維持するために、バケットの数を に増やします。

関連する問題