STL算法
STLのほとんどのアルゴリズムには入力となる要素の集合を2つのイテレータで指定します。
ひとつは集合の先頭を指すイテレータfirst、もうひとつは集合の末尾の次を指すイテレータlastです。
| 【検索・走査アルゴリズム】 | ||
| <algorithm>で定義されているもの | ||
| count() | (I, I) | 値が一致する要素の数を返す |
| count_if() | (I, I) | 条件に合う要素の数を返す |
| equal() | (I, I), I | 2つの配列を比較し、すべて一致したらtrueを返す |
| find_end() | (F, F), (F, F) | 配列1の一部と配列2が部分一致したら、その最後の位置を返す |
| find() | (I, I) | 配列を走査して値が最初に一致した要素の位置を返す |
| find_first_of() | (F, F), (F, F) | 配列1の一部と配列2が部分一致したら、その最初の位置を返す |
| find_if() | (I, I) | 配列を走査し、最初に条件に一致した位置を返す |
| for_each() | (I, I) | すべての要素に対して、指定された振る舞いを実行する |
| lexicographical_compare() | (I, I), (I, I) | 2つの配列を辞書順に比較し、前者が先ならtrueを返す |
| max_element() | (F, F) | 配列の中の最大の要素の位置を返す |
| min_element() | (F, F) | 配列の中の最小の要素の位置を返す |
| mismatch() | (I, I), I | 2つの配列の不一致箇所を見つける |
| search() | (F, F), (F, F) | 配列1の一部と配列2が部分一致したら、その最初の要素の位置を返す |
| search_n() | (F, F) | 連続した個数の要素を見つけ、その位置を返す |
| <numeric>で定義されているもの | ||
| accumulate() | (I, I) | 各要素を積算して返す |
| adjacent_difference() | (F, F) | 隣接する等しい要素を探す |
| inner_product() | (I, I), I | 2つの配列の内積を計算して返す |
| patial_sum() | (I, I), O | 積算の途中経過をすべて他の配列に残す |
| 【配列操作アルゴリズム】 | ||
| copy() | (I, I), O | 配列をコピーする |
| copy_backward() | (B, B), B | 配列を逆順にコピーする |
| fill() | (F, F) | 配列を与えられた値で埋める |
| fill_n() | O | 配列を与えられた個数分の指定値で埋める |
| generate() | (F, F) | 配列を、与えられた関数の返値で埋める |
| generate_if() | O | 配列を与えられた個数分、指定された関数の返値で埋める |
| iter_swap() | F, F | 2つのイテレータが指す要素を交換する |
| random_shuffle | (R, R) | 配列をシャッフルする |
| remove() | (F, F) | 配列の中の、与えられた値と同じ要素を削除する |
| remove_if() | (F, F) | 配列の中の、条件に合う要素を削除する |
| remove_copy() | (I, I), O | 与えられた値と同じ要素以外を新しい配列にコピーする |
| remove_copy_if() | (I, I), O | 条件に合う要素以外を新しい配列にコピーする |
| replace() | (F, F) | 配列の中の古い値を、新しい値に置換する |
| replace_if() | (F, F) | 配列の中の条件に合う要素を、新しい値に置換する |
| replace_copy() | (I, I), O | 配列の中の古い値を、新しい値に置換しながら新しい配列にコピーする |
| replace_copy_if() | (I, I), O | 配列の中の条件に合う要素を、新しい値に置換しながら新しい配列にコピーする |
| reverse() | (B, B) | 配列の要素を反転させる |
| reverse_copy() | (B, B), O | 要素を反転させつつ、新しい配列にコピーする |
| rotate() | (F, F, F) | 同じ配列内で、前半と後半を入れ替える |
| rotate_copy() | (F, F, F), O | 前半と後半を入れ替えながら新しい配列にコピーする |
| swap_range() | (F, F), F | 2つの配列の内容を交換する |
| transform() | (I, I), O | 1つ、あるいは2つの配列に操作を加えながら、新しい配列に出力する。 |
| (I, I), I, O | ||
| unique() | (F, F) | 隣接する同じ要素を削除する |
| unique_copy() | (I, I), O | 隣接する同じ要素をのぞいて、新しい配列にコピーする |
| ソート関連アルゴリズム |
| その他のアルゴリズム |
浙公网安备 33010602011771号