STL:アルゴリズム

(1)変更を行わないもの

for_each() 指定区間の要素を操作する
find() 指定区間からの要素を検索する
find_if() 指定された条件を満足させる要素を検索
count() 指定された値である要素の数を返す
count_if() 指定された条件を満足させる要素の数を返す
mismatch() ふたつの列で最初に相違する要素の位置を返す
equal() ふたつの指定区間内容が等しいなら真
search() 部分シーケンスが現れる位置を返す

(2)変更を行うもの

copy() 列をコピーする
swap() ふたつの列内容を交換する
iter_swap() 反復子が指すふたつの要素を交換する
transform() 指定区間内の全要素に対して同一の変更を加える
replace() 指定された値と新しい値を置換
fill() 指定された区間の全要素に値を代入する
generate() 指定された演算の結果を代入する
remove() 指定された値の要素を削除
unique() 隣接する等値データを削除してひとつだけにする
reverse() 順番を逆にする
rotate() 要素を回転シフトする
random_shuffle() 要素を一様分布にシャッフルする

(3)整列

sort() ソートする
stable_sort() 等しいデータの前後関係を維持しながらソートする
nth_element() 値がn番目である要素を配列のn番目に正しく置く

(4)二分探索

lower_bound() 指定した値を挿入できる最初の位置を返す
upper_bound() 指定した値を挿入できる最大の位置を返す
binary_seartch() ソート済みデータから値を探す

(5)併合

merge() ふたつのソート済みの列を併合する

(6)集合

includes() 指定区間の要素が別の区間の内部にあれば真
set_union() ふたつの区間の和集合を取る
set_intersection() ふたつの区間の積集合を取る

(7)ヒープ

make_heap() 指定の区間をヒープ構造にする
push_heap() ヒープにデータを追加する
pop_heap() ヒープからデータを削除する
sort_heap() ヒープをソートする

(8)最小/最大

min() ふたつの値の小さいほうを返す
max() ふたつの値の大きいほうを返す
min_element() 指定区間内でもっとも小さい値を返す
max_element() 指定区間内でもっとも大きい値を返す