1. ホーム
  2. c++

[解決済み] C++におけるmapとhash_mapの比較

2022-08-30 09:30:09

疑問点

質問があります。 hash_mapmap をC++で作成することができます。ということを理解し map はSTLにありますが hash_map は規格外です。この2つの違いは何でしょうか?

どのように解決するのですか?

実装方法が大きく異なります。

hash_map ( unordered_map TR1やBoostでは、これらを代わりに使います) は、キーがテーブルのスロットにハッシュされ、値がそのキーに結びついたリストに格納される、ハッシュテーブルを使用します。

map は平衡二分探索木(通常は赤/黒木)として実装されます。

unordered_map はコレクションの既知の要素にアクセスする際のパフォーマンスを若干向上させるはずです。 map にはさらに便利な特徴があります (例えば、ソートされた状態で保存されるので、最初から最後まで走査することができます)。 unordered_map は挿入や削除の際に map .