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 раз.

Убрать повторы (Unique)

template ‹class ForwardIterator›

ForwardIterator unique(ForwardIterator first, ForwardIterator last);

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 раз.

Расположить в обратном порядке (Reverse)

template ‹class BidirectionalIterator›

void reverse(BidirectionalIterator first, BidirectionalIterator last);

Для каждого неотрицательного целого числа 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);

reverse_copy копирует диапазон [first, last) в диапазон [result, result+(last-first)) такой, что для любого неотрицательного целого числа i ‹ (last-first) происходит следующее присваивание: *(result+(last- first)-i) = *(first+i). reverse_copy возвращает result+(last-first). Делается точно last-first присваиваний. Результат reverse_copy не определён, если [first, last) и [result, result +(last-first)) перекрываются.

Переместить по кругу (Rotate)

template ‹class ForwardIterator›

void rotate(ForwardIterator first, ForwardIterator middle, ForwardIterator last);

Для каждого неотрицательного целого числа i ‹ (last-first) функция rotate помещает элемент из позиции first+i в позицию first+(i+(last-middle))%(last-first). [first, middle) и [middle, last) - допустимые диапазоны. Максимально выполняется last-first перестановок.

template ‹class ForwardIterator, class OutputIterator›

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату