4

C++ セットが、バイナリ ツリーによって提供される O(log n) と比較して O(1) の平均ケース複雑度を提供できるハッシュセットとしてではなく、バイナリ ツリーとして実装されるのはなぜですか?

4

3 に答える 3

17

C++ セットはT's 比較演算子によって順序付けられるため、予測可能な方法でメンバーを反復処理できます。セットで行うことは要素の挿入、メンバーシップのテスト、および/または削除だけであることがわかっている場合std::unordered_set、ハッシュセットを実装する は C++11 以降そのために存在します。

于 2013-05-14T04:31:44.690 に答える
9

John Nagle によると、2006 年のcomp.lang.c++.moderatedへの投稿から:

実際の理由は、仕様のハッシュ テーブルの部分を書いていた人が時間内に書き終えなかったことです。それで全部です。

標準化プロセスはそのようなものです。

于 2013-05-14T06:32:24.263 に答える