標準テンプレートライブラリ(STL) アルゴリズム

  • 11
    Like
  • 0
    Comment
More than 1 year has passed since last update.

ヘッダ

#include<algorithm>

アルゴリズム一覧(一部のみ後で追加するかも)

変更を行わないもの

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

変更を行うもの

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

整列

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

二分探索

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

併合

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

集合

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

ヒープ

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

最小・最大

・min() 二つの値の小さい方を返す
・max() 二つの値の大きい方を返す
・min_element() 指定区間内で最小の要素を返す
・max_element() 指定区間内で最大の要素を返す

ifとcopy

関数末尾に_ifや_copyがつくもの
_if 条件付きで処理をする
_copy 結果を別のオブジェクトにコピーする