名前付き要件: Compare
提供: cppreference.com
Compare は標準ライブラリの一部の機能によって期待されるユーザ定義の関数オブジェクト型の要件の集合です。
Compare を満たす型のオブジェクトに適用される関数呼び出し操作の戻り値が bool に文脈的に変換されたとき、この型によって規定される狭義弱順序関係においてその呼び出しの第1引数が第2引数より前に現れるならば true を生成し、そうでなければ false を生成します。
あらゆる BinaryPredicate と同様に、その式の評価はイテレータの逆参照を通して非 const 関数を呼んではなりません。
[編集] 要件
以下の内容を満たす場合、型 T
は Compare を満たします。
- 型
T
が BinaryPredicate を満たし、
さらに、
-
T
型のオブジェクトcomp
-
!comp(a, b) && !comp(b, a)
と同等な式equiv(a, b)
が与えられたとき、以下の式が有効でなければならず、指定された効果を持た��ければなりません。
式 | 戻り値の型 | 要件 |
---|---|---|
comp(a, b) | bool に暗黙に変換可能 | 以下の性質を持つ狭義弱順序関係を確立する。
|
equiv(a, b) | bool | 以下の性質を持つ同等関係を確立する。
|
ノート: comp
は equiv
によって決定される同等クラスに対して狭義全順序を規定します。
[編集] 標準ライブラリ
以下の標準ライブラリの機能は Compare 型を期待します。
一意なキーによってソートされた、キーのコレクション (クラステンプレート) | |
一意なキーによってソートされた、キー値ペアのコレクション (クラステンプレート) | |
キーによってソートされた、キーのコレクション (クラステンプレート) | |
キーによってソートされた、キー値ペアのコレクション (クラステンプレート) | |
優先度付きキューを提供するためにコンテナを適合させます (クラステンプレート) | |
指定範囲を昇順にソートします (関数テンプレート) | |
要素をソートします ( std::forward_list<T,Allocator> のパブリックメンバ関数)
| |
要素をソートします ( std::list<T,Allocator> のパブリックメンバ関数)
| |
等しい要素間の順序を維持しながら指定範囲の要素をソートします (関数テンプレート) | |
指定範囲の最初の N 個の要素をソートします (関数テンプレート) | |
指定範囲の最初の N 個の要素がソートされたコピーを作成します (関数テンプレート) | |
(C++11) |
指定範囲が昇順にソートされているか調べます (関数テンプレート) |
(C++11) |
最も大きなソート済みの部分範囲を探します (関数テンプレート) |
指定された要素で分割されるように指定範囲を部分ソートします (関数テンプレート) | |
指定された値より小さくない最初の要素を指すイテレータを返します (関数テンプレート) | |
指定された値より大きい最初の要素へのイテレータを返します (関数テンプレート) | |
指定範囲に要素が存在するかどうか調べます (関数テンプレート) | |
特定のキーに一致する要素の範囲を返します (関数テンプレート) | |
2つのソート済み範囲をマージします (関数テンプレート) | |
ソートされた2つのリストをマージします ( std::forward_list<T,Allocator> のパブリックメンバ関数)
| |
ソートされた2つのリストをマージします ( std::list<T,Allocator> のパブリックメンバ関数)
| |
2つのソート済み範囲をその場でマージします (関数テンプレート) | |
ある集合が別の集合の部分集合であるかどうか調べます (関数テンプレート) | |
2つの集合の差を計算します (関数テンプレート) | |
2つの集合の交叉を計算します (関数テンプレート) | |
2つの集合の対称差を計算します (関数テンプレート) | |
2つの集合の和を計算します (関数テンプレート) | |
最大ヒープに要素を追加します (関数テンプレート) | |
最大ヒープから最も大きな要素を削除します (関数テンプレート) | |
指定範囲の要素から最大ヒープを作成します (関数テンプレート) | |
最大ヒープを昇順にソートされた要素の範囲に変換します (関数テンプレート) | |
(C++11) |
指定範囲が最大ヒープであるかどうか調べます (関数テンプレート) |
(C++11) |
最大ヒープである最も大きな部分範囲を探します (関数テンプレート) |
指定された値の大きい方を返します (関数テンプレート) | |
指定範囲の最も大きな要素を返します (関数テンプレート) | |
指定された値の小さい方を返します (関数テンプレート) | |
指定範囲の最も小さな要素を返します (関数テンプレート) | |
(C++11) |
2つの要素の小さい方と大きい方を返します (関数テンプレート) |
(C++11) |
指定範囲の最も小さな要素と最も大きな要素を返します (関数テンプレート) |
ある範囲が別の範囲より辞書的に小さいかどうか調べます (関数テンプレート) | |
指定範囲の要素より辞書的に大きな次の順列を生成します (関数テンプレート) | |
指定範囲の要素より辞書的に小さな次の順列を生成します (関数テンプレート) |