49

私は最近、C++でのハッシュマップの実装がと呼ばれることを発見しましたunordered_map

彼らが単に使用していない理由を調べたところ、その解決策hash_mapの実装には明らかに互換性の問題があることがわかりました(詳細はこちら)。hash_mapunordered_map

そのウィキページはそれ以上の情報を提供していないので、誰かがそれに関する問題のいくつかを知っているかどうか疑問に思いhash_mapますunordered_map

4

1 に答える 1

80

C ++標準ライブラリにはハッシュテーブルが定義されていないため、標準ライブラリのさまざまな実装者が、多くの場合、と呼ばれる非標準のハッシュテーブルを提供しますhash_map。これらの実装は標準に従って作成されていないため、機能とパフォーマンスの保証に微妙な違いがありました。

C ++ 11以降、ハッシュテーブルの実装がC++標準ライブラリ標準に追加されました。これらの非標準の実装との衝突を防ぎhash_table、コードに含まれている開発者による新しいクラスの不注意な使用を防ぐために、クラスの代替名を使用することが決定されました。

選択された代替名はunordered_map、クラスのマップインターフェイスとその要素の順序付けられていない性質を示唆しているため、実際にはよりわかりやすい名前です。

于 2009-10-29T20:20:41.907 に答える