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

ется в последовательность, а последний нет. Это обозначается записью [first, last). Итераторы first и last должны быть итераторами вода или более высокими в иерархии итераторов. (Подробно об итераторах см. раздел "Итераторы"). Функция f должна быть унарной функцией (или объектом-функцией) с аргументом типа контейнер. Возвращает for_each либо указатель на функцию f, либо копию объекта-функции f.

template <class Inputlterator, class Function> Function for each (Inputlterator first, Inputlterator last. Function f);

find. Алгоритм find ищет среди элементов во входном интервале [first, last) первый элемент, равный значению аргумента. При использовании алгоритма find_if ищется первый элемент, для которого функция-предикат pred() возвратит истину. В том и другом случае возвращается итератор, указывающий на такой элемент. Если такой элемент не найден, возвращается

last.

*

template <class Inputlterator, class T>

Inputlterator find(Input Iterator first, Inputlterator last, const T& value);

template <ciass Inputlterator, class Predicate> Inputlterator find if (Inputlterator first, Inputlterator last, Predicate pred);

find_end. Алгоритм find_end просматривает входной интервал [firsti, lasti) и ищет совпадение с заданным интервалом [first2, iast2). В стандартной версии для сравнения используется операция ==. Версия с бинарной функцией-предикатом принимает в качестве своих аргументов элементы первого и второго интервалов. В случае, если найден более чем один интервал совпадения, выбирается последний. Возвращается итератор, указывающий на последний элемент из найденной последовательности, если такового не оказалось — возвращается lasti.

template <class Forwardlteratorl, class Forwardlterator2> Forwardlteratorl find end (Forwardlteratorl firsti,

Forwardlteratorl lasti, Forwardlterator2 first2, Forwardlterator2 Iast2);

template <ciass Forwardlteratorl, class Forwardlterator2,

class BinaryPredicate> Forwardlteratorl find end (Forwardlteratorl firsti,

Forwardlteratorl lasti, Forwardlterator2 first2,

Forwardlterator2 Iast2, BinaryPredicate pred);