2012-01-19 4 views
0

注:時には答えは「ユーザーとしては実装の詳細を心配する必要はありません」ですが、これは私が私はそれを実装したいかのように学びたい。 SGIによればユニークなアソシエーティブハッシュマップコンテナとアソシエイティブハッシュマップコンテナのプロパティは何ですか

Aユニーク連想容器は、容器内の各キーが一意である プロパティと連想コンテナではない: には二つの要素固有連想コンテナが同じキーを有します。

それほどわかりません。さらに説明されていないのは、キーが一意であるときとそうでないときにデータがどのように格納されるかです(これが説明されていない理由は、実装に依存するということです)。したがって、キーが一意である場合、すべてのバケットは1サイズの要素ですか?私は衝突のためではないと考えています。バケット番号がhasherで一度決定され、キーが一意であれば、要素はどのようにバケット自体に格納されていますか?

キーが一意でない場合はどうなりますか?要素はどのように格納され、次にバケットに/から返されますか?

(もしあれば)、彼らがどのように(一般的に)ユニーク連想コンテナ連想コンテナストアその要素とそれらの間の差異に関連する場合、私は他のポイントに推敲をいただければ幸いです。

答えて

0

キーは、ユニークなアソシエーティブコンテナで一意であるです。あなたがリンクしたページで説明したように、キーkを持つ要素eを挿入すると、同じキーkを使ってinsert()を呼び出すと、新しい要素は挿入されません。また、リンクしたページから、指定されたキーを持つUACの要素数を返すcount()メソッドは、常に0または1を返します。

「バケツ」に関するご質問は不明です。コンテナがバックエンドでデータをバケット化する方法(ハッシュマップが連鎖または別のメカニズムを介して衝突を処理するかどうかなど)は、ユーザーとして影響しません。

+0

私は実装者として質問しています。私は実装の詳細を単に却下するのではなく、これについて学びたいと思っています。 – Samaursa

+1

一意の連想コンテナ仕様自体はバケット方式を指定していないので、上で示した仕様の詳細を守っている限り、衝突を自由に処理できます(キーが実際に等しいケースを処理する –

+1

@Samaursa:私は、それぞれのバケツがお互いに異なるいくつかのキーを保持していると思います。 –

関連する問題