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 に答える