Translations of this page?:

アルゴリズムライブラリ

Non-modifying sequence operations

<algorithm>内に定義されています。

all of, any of, none of全ての要素に対し条件式が真となる、いずれかの要素に対し条件式が真となる、いずれの要素に対して条件式が真とならないならば、trueを返す
for_each範囲内の要素に関数を適用する
count与えられた値とマッチする要素の数を返す
count_ifある条件がtrueとなる要素の数を返す
mismatch2つの配列の違いがでる最初の場所を探す
equal2つの要素のセットが同値か判断する
find, find_if, find_if_not(C++11)条件を満たす最初の要素を見つける
find_endある範囲の最後の要素を探す
find_first_ofあるセットの要素の中でどれでも一つ探す
adjacent_find同値の(あるいは他の基準を満たす)隣り合った要素を見つける
search範囲内の要素を探索する
search_nある範囲において、要素がn個連続する範囲の最初のイテレータを返す

Modifying sequence operations

<algorithm>内に定義されています。

copy, copy_if範囲内の要素を新しい場所にコピーする
copy_nn個の要素を新しい場所にコピーする
copy_backward範囲内の要素を、新しい場所に逆順にコピーする
move範囲内の要素をムーブする
move_backward範囲内の要素を、逆順にムーブする
fillある範囲に特定の値を割り当てる
fill_n特定の数の要素に値を割り当てる
transform範囲内の要素に関数を適用する
generate範囲内の要素に関数の返り値を保存する
generate_nN個の要素に関数の返り値を保存する
remove, remove_if条件を満たす要素を取り除く
remove_copy, remove_copy_if条件を満たす要素をコピーし、コピー元から取り除く
replace, replace_if条件を満たす要素を他の値へ置き換える
replace_copy, replace_copy_ifある値を持つ要素を別の値に置き換えて配列をコピーする
swap2つのオブジェクトの値を入れ替える
swap_ranges範囲内の要素を入れ替える
iter_swap2つのイテレータが指す要素を入れ替える
reverse範囲内の要素を逆順に並び替える
reverse_copy範囲内の要素を逆順に並び替えたコピーを作る
rotate範囲内の要素を与えられた数だけ左に動かす
rotate_copy範囲内の要素をコピーし、与えられた数だけ左に動かす
ramdom_shuffle, shuffle要素をランダムに再配置する
unique範囲内において連続して重複した要素を取り除く
unique_copy範囲内において連続して重複した要素を取り除き、そのコピーを作る

Partitioning operations

<algorithm>内に定義されています。

is_partitionedその範囲において、条件を満たすように要素が分割されているか、判定する
partition範囲内の要素を2つに分割する
stable_partition範囲内の要素を2つに分割する。同値な要素の順番は保持される
partition_point分割点を取得する

ソート

<algorithm>内に定義されています。

is_sorted範囲内の要素がソートされているか判定する
is_sorted_untilソートされている範囲の最後のイテレータを返す
sort範囲内の要素を昇順にソートする
partial_sortある範囲において、最初のN要素のみソートする
partial_sort_copy範囲内の要素をコピーし部分的にソートする
stable_sort範囲内の要素をソートする。同値な要素の順番は保持される
nth_elementある要素をソートされたときに正しい位置に挿入する。その要素よりも左側にはその値より大きな値の要素がこないようにし、逆に右側には小さな値がこないようにする

二分木探索

<algorithm>内に定義されています。

lower_boundソートされた配列でその要素が昇順を崩さない最初のインデックスを探す
upper_bound順序を崩さずに挿入可能な最後の位置を検索する(指定値より大きい最初の位置を返す)
binary_searchある範囲の中で要素があるかどうか判定する
equal_rangeある要素とすべて同値となる範囲を探す

ソートされた要素に対する操作

<algorithm>内に定義されています。

merge2つのソートされた要素をマージする
inplace_merge連続したソート済みの要素をマージする
includesあるセットが他のセットのサブセットになっていたときにtrueを返す
set_difference2つのセットの差分を出す
set_intersection2つのセットの共通集合を出す
set_symmetric_difference2つのセットの対象差を出す
set_union2つのセットの和集合を出す

ヒープ対する操作

<algorithm>内に定義されています。

is_heap範囲内の要素がヒープ構造になっている場合trueを返す
is_heap_until範囲内の要素がヒープ構造になっている最後の要素を見つける
make_heap範囲内の要素からヒープを作成する
push_heapヒープに要素を追加する
pop_heapヒープ内の最大の要素を取り除く
sort_heapヒープ構造となっている要素をソートする

最大値/最小値

<algorithm>内に定義されています。

max2つの要素のうち大きな方を返す
max_element範囲内の最大の要素を返す
min2つの要素のうち小さな方を返す
min_element範囲内の最小の要素を返す
minmax_element範囲内の最大値と最小値を返す
lexicographical_compareある範囲が他の範囲より辞書順で早い場合trueを返す
is_permutationある範囲が、他の範囲を辞書順に並べたものであるか判定する
next_permutationある順列に対し、次に辞書順が早い順列を生成する
prev_permutationある順列に対し、次に辞書順が遅い順列を生成する

Numeric operations

<numeric>内に定義されています。

iota初期値から順次インクリメントされた値で、範囲内の要素を埋める
accumulate範囲内の要素の合計を返す
inner_product2つの範囲の内積を計算する
adjacent_differenceある範囲内において隣り合った要素間の差を計算する
partial_sum範囲内の要素の部分和を計算する

Cライブラリ

<cstdlib>内に定義されています。

qsort型が未定義の配列をソートする
bsearch型が未定義の配列からある要素を見つける
 
• • • SitemapRecent changesRSScc