Глава 18. Классы-контейнеры_________________________________487

generate. Алгоритмы generate и generate_n действуют так же, как и fill и fill_n, но присваивают каждому элементу результат выполнения функции gen. Функция gen аргументов не имеет.

template <class Forwardlterator, class Generator> void generate (Forwardlterator first, Forwardlterator last, Generator gen);

template <class Outputlterator, class Size, class Generator> Outputlterator generate_n (Outputlterator first. Size n, Generator gen) ;

remove. Алгоритмы remove и remove_if уничтожают все элементы входной последовательности [first, last), которые или совпадают с заданной величиной (ДЛЯ remove) ИЛИ те, ДЛЯ которых функция pred (element) истинна (для

remove_if). Уничтожение элемента осуществляется копированием следующего за уничтожаемым элемента на позицию ниже. Самый последний элемент в последовательности НЕ уничтожается. В обоих случаях — remove и remove_if — возвращается указатель на элемент, следующий за последним во входной последовательности. Таким образом, неиспользованные элементы в конце контейнера оказываются в диапазоне [возвращаемое значение remove или remove if, container.end()).

template <class Forwardlterator, class T> Forwardlterator remove (Forwardlterator first,

Forwardlterator last, const T& value) ;

template <class Forwardlterator, class Predicate> Forwardlterator remove if (Forwardlterator first,

Forwardlterator last,

Predicate pred) ;

template <class Inputlterator, class Outputlterator, class T> Outputlterator remove_copy (Inputlterator first,

Inputltsrator last,

Outputlterator result,

const. T& value) ;

template <class Inputlterator, class Outputlterator, class Predicate>

Outputlterator remove copy_if (Inputlterator first, Inputlterator last, Outputlterator result, Predicate pred); ,

Версия copy копирует все элементы в новую выходную последовательность, кроме тех элементов, для которых выполняются заданные условия, при этом исходная последовательность остается неизменной. Возвращаемое значение указывает на следующий за скопированным последним элемент.

1 6 Чяв- 1ПЙ