478 __ __Часть III. Современное программирование на C++

bo'ol equal (Inputlteratorl firsti, Inputlteratorl lasti,

Inputlterator2 first2, BinaryPredicate binary_pred) ;

search. Алгоритм search пытается найти в последовательности [firsti, lasti) заданную подпоследовательность [first2, last2). Если совпадение найдено, возвращается итератор, указывающий на начальный элемент подпоследовательности. Совпадение в стандартной версии алгоритма определяется операцией ==, а для версии с предикатом — истинностью функции binary_pred. Если совпадение не найдено, возвращается lasti.

template <class Forwardlteratorl, class Forwardlterator2> Forwardlteratorl search (Forwardlteratorl firsti,

Forwardlteratorl lasti,

Forwardlterator2 first2,

Forwardlterator2 last21.;

template <class Forwardlteratorl, class Forwardlterator2,

class BinaryPredicate> Forwardlteratorl search (Porwardlteratorl firsti,

Forwardlteratorl lasti,

Forwardlterator2 first2,

Forwardlterator2 la'st2,

BinaryPredicate binary__pred) ;

Алгоритмы, изменяющие последовательности . Алгоритмы, изменяющие последовательности (mutating sequence algorithms), как и не изменяющие, выполняют операции над последовательными контейнерами, такими как вектор, двусторонняя очередь и список, но в отличие от них они могут менять элементы контейнеров. Эти алгоритмы выполняют операции над набором элементов, который определяется парой итераторов first и last. В диапазон включается элемент first, но не включается элемент last.

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

template <class Inputlterator, class Outputlterator> Outputlterator copy (Inputlterator first, Inputlterator last, - Outputlterator result) ;

copy_backward. Алгоритм copy_backward очень похож на copy. Он копирует элементы из диапазона [first, last), но начинает с элемента, на который указывает last-l, копирует в result-l и двигается до first. Таким образом, результирующий диапазон — [result- (last-first), result). Возвращаемый итератор указывает на последний скопированный элемент, а не на следующий за ним.