transform присваивает посредством каждого итератора i в диапазоне [result, result+(last1-first1)) новое соответствующее значение, равное op(*(first1+(i-result)) или binary_op(*(first1+(i-result), *(first2+(i-result))). transform возвращает result+(last1-first1). Применяются op или binary_op
точно last1 - first1 раз. Ожидается, что op и binary_op не имеют каких-либо побочных эффектов. result может быть равен first в случае унарного преобразования или first1 либо first2 в случае бинарного.
template ‹class ForwardIterator, class Predicate, class T›
void replace_if(ForwardIterator first, ForwardIterator last, Predicate pred, const T& new_value);
replace заменяет элементы, указанные итератором i в диапазоне [first, last), значением new_value, когда выполняются следующие соответствующие условия: *i==old_value, pred(*i)==true. Соответствующий предикат применяется точно last - first раз.
template ‹class InputIterator, class OutputIterator, class T›
replace_copy присваивает каждому итератору i в диапазоне [result, result+(last-first)) значение new_value или *(first+(i-result)) в зависимости от выполнения следующих соответствующих условий: *(first+(i-result))==old_value, pred(*(first+(i-result)))==true. replace_copy возвращает result+(last-first). Соответствующий предикат применяется точно last - first раз.
Заполнить (Fill)
template ‹class ForwardIterator, class T›
void fill(ForwardIterator first, ForwardIterator last, const T& value);
template ‹class OutputIterator, class Size, class T›
OutputIterator fill_n(Output Iterator first, Size n, const T& value);
fill присваивает значения через все итераторы в диапазоне [first, last) или [first, first+n). fill_n возвращает first+n. Точно делается last - first (или n) присваиваний.
Породить (Generate)
template ‹class ForwardIterator, class Generator›
void generate(ForwardIterator first, ForwardIterator last, Generator gen);
template ‹class OutputIterator, class Size, class Generator›
OutputIterator generate_n(OutputIterator first, Size n, Generator gen);
generate вызывает функциональный объект gen и присваивает возвращаемое gen значение через все итераторы в диапазоне [first, last) или [first, first + n). gen не берёт никакие параметры. generate_n возвращает first + n. Точно выполняется last - first (или n) вызовов gen и присваиваний.
Удалить (Remove)
template ‹class ForwardIterator, class T›
ForwardIterator remove(ForwardIterator first, ForwardIterator last, const T& value);
template ‹class ForwardIterator, class Predicate›
ForwardIterator remove_if(ForwardIterator first, ForwardIterator last, Predicate pred);
remove
устраняет все элементы, указываемые итератором i в диапазоне [first, last), для которых выполнены следующие соответствующие условия: *i==value, pred(*i)==true. remove возвращает конец возникающего в результате своей работы диапазона. remove устойчив, то есть относительный порядок элементов, которые не удалены, такой же, как их относительный порядок в первоначальном диапазоне. Соответствующий предикат применяется точно last -first раз.
template ‹class InputIterator, class OutputIterator, class T›
OutputIterator remove_copy(InputIterator first, InputIterator last, OutputIterator result, const T& value);
template ‹class InputIterator, class OutputIterator, class Predicate›
OutputIterator remove_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred);
remove_copy копирует все элементы, указываемые итератором i в диапазоне [first, last), для которых не выполнены следующие соответствующие условия: *i==value, pred(*i)==true. remove_copy возвращает конец возникающего в результате своей работы диапазона. remove_copy устойчив, то есть относительный порядок элементов в результирующем диапазоне такой же, как их относительный порядок в первоначальном диапазоне. Соответствующий предикат применяется точно last-first раз.
template ‹class ForwardIterator, class BinaryPredicate›
ForwardIterator unique(ForwardIterator first, ForwardIterator last, BinaryPredicate binary_pred);
unique устраняет все, кроме первого, элементы из каждой последовательной группы равных элементов, указываемые итератором i в диапазоне [first, last), для которых выполнены следующие соответствующие условия: *i==*(i-1) или binary_pred(*i, *(i-1))==true. unique возвращает конец возникающего в результате диапазона. Соответствующий предикат применяется точно (last-first)-1 раз.
template ‹class InputIterator, class OutputIterator›
OutputIterator unique_copy(InputIterator first, InputIterator last, OutputIterator result);
template ‹class InputIterator, class OutputIterator, class BinaryPredicate›
OutputIterator unique_copy(InputIterator first, InputIterator last, OutputIterator result, BinaryPredicate binary_pred);
unique_copy копирует только первый элемент из каждой последовательной группы равных элементов, указываемых итератором i в диапазоне [first, last), для которых выполнены следующие соответствующие условия: *i==*(i-1) или binary_pied(*i, *(i-1))==true. unique_copy возвращает конец возникающего в результате диапазона. Соответствующий предикат применяется точно (last-first)-1 раз.
Для каждого неотрицательного целого числа i‹=(last-first)/2 функция reverse применяет перестановку ко всем парам итераторов first+i, (last-i)-1. Выполняется точно (last-first)/2 перестановок.
template ‹class BidirectionalIterator, class OutputIterator›
OutputIterator reverse_copy(BidirectionalIterator first, BidirectionalIterator last, OutputIterator result);