名前空間
変種
操作

名前付き要件: Compare

提供: cppreference.com
< cpp‎ | named req
 
 
名前付き要件
 

Compare は標準ライブラリの一部の機能によって期待されるユーザ定義の関数オブジェクト型の要件の集合です。

Compare を満たす型のオブジェクトに適用される関数呼び出し操作の戻り値が bool文脈的に変換されたとき、この型によって規定される厳密な弱い順序関係においてその呼び出しの第1引数が第2引数より前に現れるならば true を生成し、そうでなければ false を生成します。

あらゆる BinaryPredicate と同様に、その式の評価はイテレータの逆参照を通して非 const 関数を呼んではなりません。

[編集] 要件

以下の内容を満たす場合、型 TCompare を満たします。

さらに、

  • T 型のオブジェクト comp
  • !comp(a, b) && !comp(b, a) と同等な式 equiv(a, b)

が与えられたとき、以下の式が有効でなければならず、指定された効果を持たなければなりません。

戻り値の型 要件
comp(a, b) bool暗黙に変換可能 以下の性質を持つ厳密な弱い順序関係を確立する。
  • すべての a について comp(a,a)==false である。
  • comp(a,b)==true であれば comp(b,a)==false である。
  • comp(a,b)==true かつ comp(b,c)==true であれば comp(a,c)==true である。
equiv(a, b) bool 以下の性質を持つ同等関係を確立する。
  • すべての a について equiv(a,a)==true である。
  • equiv(a,b)==true であれば equiv(b,a)==true である。
  • equiv(a,b)==true かつ equiv(b,c)==true であれば equiv(a,c)==true である。

ノート: compequiv によって決定される同等クラスに対して厳密な全順序を規定します。

[編集] 標準ライブラリ

以下の標準ライブラリの機能は Compare 型を期待します。

一意なキーによってソートされた、キーのコレクション
(クラステンプレート) [edit]
一意なキーによってソートされた、キー値ペアのコレクション
(クラステンプレート) [edit]
キーによってソートされた、キーのコレクション
(クラステンプレート) [edit]
キーによってソートされた、キー値ペアのコレクション
(クラステンプレート) [edit]
優先度付きキューを提供するためにコンテナを適合させます
(クラステンプレート) [edit]
指定範囲を昇順にソートします
(関数テンプレート) [edit]
要素をソートします
(std::forward_listのパブリックメンバ関数) [edit]
要素をソートします
(std::listのパブリックメンバ関数) [edit]
等しい要素間の順序を維持しながら指定範囲の要素をソートします
(関数テンプレート) [edit]
指定範囲の最初の N 個の要素をソートします
(関数テンプレート) [edit]
指定範囲の最初の N 個の要素がソートされたコピーを作成します
(関数テンプレート) [edit]
(C++11)
指定範囲が昇順にソートされているか調べます
(関数テンプレート) [edit]
最も大きなソート済みの部分範囲を探します
(関数テンプレート) [edit]
指定された要素で分割されるように指定範囲を部分ソートします
(関数テンプレート) [edit]
指定された値より小さくない最初の要素を指すイテレータを返します
(関数テンプレート) [edit]
指定された値より大きい最初の要素へのイテレータを返します
(関数テンプレート) [edit]
指定範囲に要素が存在するかどうか調べます
(関数テンプレート) [edit]
特定のキーに一致する要素の範囲を返します
(関数テンプレート) [edit]
2つのソート済み範囲をマージします
(関数テンプレート) [edit]
ソートされた2つのリストをマージします
(std::forward_listのパブリックメンバ関数) [edit]
ソートされた2つのリストをマージします
(std::listのパブリックメンバ関数) [edit]
2つのソート済み範囲をその場でマージします
(関数テンプレート) [edit]
ある集合が別の集合の部分集合であるかどうか調べます
(関数テンプレート) [edit]
2つの集合の差を計算します
(関数テンプレート) [edit]
2つの集合の交叉を計算します
(関数テンプレート) [edit]
2つの集合の対称差を計算します
(関数テンプレート) [edit]
2つの集合の和を計算します
(関数テンプレート) [edit]
最大ヒープに要素を追加します
(関数テンプレート) [edit]
最大ヒープから最も大きな要素を削除します
(関数テンプレート) [edit]
指定範囲の要素から最大ヒープを作成します
(関数テンプレート) [edit]
最大ヒープを昇順にソートされた要素の範囲に変換します
(関数テンプレート) [edit]
(C++11)
指定範囲が最大ヒープであるかどうか調べます
(関数テンプレート) [edit]
最大ヒープである最も大きな部分範囲を探します
(関数テンプレート) [edit]
指定された値の大きい方を返します
(関数テンプレート) [edit]
指定範囲の最も大きな要素を返します
(関数テンプレート) [edit]
指定された値の小さい方を返します
(関数テンプレート) [edit]
指定範囲の最も小さな要素を返します
(関数テンプレート) [edit]
(C++11)
2つの要素の小さい方と大きい方を返します
(関数テンプレート) [edit]
指定範囲の最も小さな要素と最も大きな要素を返します
(関数テンプレート) [edit]
ある範囲が別の範囲より辞書的に小さいかどうか調べます
(関数テンプレート) [edit]
指定範囲の要素より辞書的に大きな次の順列を生成します
(関数テンプレート) [edit]
指定範囲の要素より辞書的に小さな次の順列を生成します
(関数テンプレート) [edit]