Rogue Wave バナー
前へマニュアルの先頭へ目的索引次へ

14.1 概要

この節では、順序付きコレクションに特有の、標準 C++ ライブラリにある汎用アルゴリズムについて説明します。これらのアルゴリズムを表 19 に示します。

表 19 -- 順序付きコレクションに特有の汎用アルゴリズム

アルゴリズム 目的
ソートアルゴリズム
sort
シーケンスを再配列して順次並べる
stable_sort
等価要素の元の順序を保持したままソートする
partial_sort
シーケンスの一部だけをソートする
partial_sort_copy
一部をソートしてコピーする
N 番目に大きな要素を検索するアルゴリズム
nth_element
n 番目に大きな要素を検索する
2 等分探索アルゴリズム
binary_search
検索してブール型を返す
lower_bound
検索して最初の位置を返す
upper_bound
検索して最後の位置を返す
equal_range
検索して最初と最後の位置を返す
順序付きシーケンスマージアルゴリズム
merge
2 つの順序付きシーケンスを組み合わせる
集合演算アルゴリズム
set_union
2 つの集合の和集合を生成する
set_intersection
2 つの集合の積集合を生成する。
set_difference
2 つの集合の差を生成する
set_symmetric_difference
2 つの集合の対称差を生成する
includes
ある集合が別の集合の部分集合かどうかを調べる
ヒープ操作アルゴリズム
make_heap
シーケンスをヒープに変換する
push_heap
新しい値をヒープに追加する
pop_heap
ヒープから最大値を削除する
sort_heap
ヒープをソートされた集合に変換する

順序付きコレクションは、標準 C++ ライブラリを使用してさまざまな方法で作成することができます。以下はその例です。

13 章で説明した汎用アルゴリズムと同様に、ここで説明するアルゴリズムは特定のコンテナクラスに特有のアルゴリズムではありません。つまり、これらのアルゴリズムはさまざまな型に使用することができます。ただし、その多くはランダムアクセス反復子の使用を必要とします。このため、vectordeque、または通常の配列で最も容易に使用することができます。

この節で説明するアルゴリズムのほとんどが、2 つのバージョンを持ちます。最初のバージョンは、コンテナ要素型特有の比較に小なり演算子 < を使用します。第 2 バージョンはより一般的で、明示的な比較関数オブジェクトを使用します。ここではそれを Compare と記述します。この関数オブジェクトは、2 項述語 (3.2 節を参照) である必要があります。この引数は省略可能なので、引数型の説明ではこれを角括弧で囲んでいます。

すべての有効または表示可能な反復子 i と表示可能な後続の反復子 j について、比較 Compare(*j, *i)false の場合、シーケンスは順序付きとみなされます。これは必ずしも Compare(*i, *j)true であることを意味しないので注意してください。Compare によって発生する関係は推移的であり、値の全体の順序を誘導するものと想定されています。

以降の説明では、2 つの値 xy は、Compare(x, y)Compare(y, x) がいずれも false である場合は等価とされます。これは必ずしも x == y であることを意味しませんので注意してください。

14.1.1 インクルードファイル

第 13 章で説明したアルゴリズムと同様に、これらのアルゴリズムをプログラムに使用する前に、algorithm ヘッダーファイルをインクルードする必要があります。


前へマニュアルの先頭へ目的索引次へ
Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月