13

std::set連想コンテナとして定義されているのはなぜですか?

つまりstd::map、値をキーにマップするため連想コンテナーですが、なぜセットなのですか?

4

2 に答える 2

5

23.4.6.1 クラステンプレートセットの概要 [set.overview]

Asetは [..] 連想コンテナ (23.2.4) [...] のすべての要件を満たします。

連想コンテナーであるというすべての前提条件を満たしているためです。これは、23.2.4.「キーを値にマップする」ほど単純ではありません。

2 番目の段落では、これについても強調しています (むしろ、それが実際mapにありmultimap、連想コンテナーに追加機能があることを強調しています)。

23.2.4 連想コンテナ [associative.reqmts]

2) 各連想コンテナは、Key と、Key の要素に厳密で弱い順序付け (25.4) を誘導する順序付け関係 Compare でパラメータ化されます。さらに、map と multimap は、任意の型 T を Key に関連付けます。タイプ Compare のオブジェクトは、コンテナの比較オブジェクトと呼ばれます。

パラグラフ全体は大きすぎてここに再現できません。

于 2013-04-02T10:09:05.443 に答える