アルゴリズム

アルゴリズムは、標準テンプレート ライブラリの基本的な部分です。 アルゴリズムはコンテナー自体で反復子を使用しません。 したがって、同じアルゴリズムはほとんど STL コンテナーすべて使用できません。 ここでは、STL アルゴリズムの規則と用語について説明します。

解説

アルゴリズムのテンプレート機能の説明は複数の短縮形句を使用して:

  • 範囲の語句「[AB)A.より前の A ではありません。ゼロ以上の独立した値のシーケンスを示しています。 範囲は、クラス B が クラス A; から到達可能である場合にのみ有効です。オブジェクト A を N に保存できます (N )、A= オブジェクトをゼロ以上のインクリメントするためだけ ++N ()、およびオブジェクトをインクリメント (B) N == の有限数後に B に等しいする

  • 語句「範囲の各 N [AB) 値」 A.と同じになるまで、N はA から始まり、ゼロのインクリメントされる以上の繰り返しことを意味します。 ケース N == B が範囲内にありません。

  • 条件が満たされるまで X 条件 X は 範囲[A、の各 N 用に決定された B) であることを X」を意味し、語句「範囲[AB)N の最小値を受け取るようにします。

  • X は 範囲[AB) の各 N に決定できることを意味します。X は 語句「範囲[AB)N の最大値を受け取るようにします。 関数は KX の条件が満たされるたびに N のコピーを保存します。 そのストアが発生すると、この関数は Kの値と Bと等しい Nの最終値を置き換えます。 ただし、双方向またはランダム アクセス反復子でも X 条件が満たされるまで N は 範囲の最大値から始まり、範囲にデクリメントされることを意味します。

  • Xなどの式 -XY に ランダム アクセス反復子以外の反復子である場合は、y は、数学的な意味で使用されます。 関数は、このような値を決定する必要 ###-演算子が評価されます。 これは式にも当てはまりますなどの x + NX - N が 整数型である場合、N

複数のアルゴリズムは bool の結果が得られるように **operator==**となどの比較は、ペアに実行述語を使用します。 述語関数 operator==、つまりの置換は、オペランドの、変更はできません。 これは、いずれかのオペランドのコピーがオペランドの代わりに評価される場合、同じ結果を使って特定するたびに bool の同じ結果が生じます。

複数のアルゴリズムは、シーケンスの要素のペアに厳密な弱い順序付けを必要課さなければ述語を使用します。 述語 pr (XY) の場合:

  • この厳密 prを意味します (xX) はfalse です。

  • 弱い意味して x と y 対応できるようにするかどうかを指示します。pr (XY) &&。pr (XY ) (x == Y を 定義する必要はありません)。

  • 順序は、pr (XY) pr && 意味します (Yの Z) は pr (Xの Z) を意味します。

これらのアルゴリズムの暗黙的な使用方法の一部 < 述語。 通常厳密な弱い順序付けの要件を満たす他の述語 > は、 (XY)greater (XY) です。 ただし、述語が x <y = x > = Y この要件を満たさないください。

範囲[First、Last) の反復子で指定された要素のシーケンスは範囲[0、Lastの各 N に演算子が**<**、購入するシーケンスです。 - 範囲 (N、Lastの各 M のFirst) と -First) 述語。(* (First + M) <* (最初に + N) ) です。要素が昇順に並べ替えられることに注意してください)。述語関数 オペレータ<、つまりの置換は、オペランドの、変更はできません。 これは、いずれかのオペランドのコピーがオペランドの代わりに評価される場合、同じ結果を使って特定するたびに bool の同じ結果が生じます。 また、比較するオペランドに厳密な弱い順序付けを課さなければ必要があります。

範囲[First、Last) の反復子で指定された要素のシーケンスは範囲[1、Lastの各 Nオペレータ< によって、購入したヒープ。 -First) 述語。(*First < * (First + N) ) です。(最初の要素が最大値になります)。その内部構造は、テンプレート関数 make_heappop_heappush_heapにのみで認識されています。 順序付けられたシーケンスと同様に、述語関数 オペレータ<、つまりの置換は、オペランドの変化を比較するオペランドに厳密な弱い順序付けを課さなければ必要があります。 これは、いずれかのオペランドのコピーがオペランドの代わりに評価される場合、同じ結果を使って特定するたびに bool の同じ結果が生じます。

STL アルゴリズムは <algorithm><numeric> のヘッダー ファイルに含まれています。

参照

関連項目

標準テンプレート ライブラリ

C++ 標準ライブラリ内のスレッド セーフ