• beg2
— итератор, обозначающий начало второй исходной последовательности. Если итератор end2
присутствует, он обозначает конец второй последовательности. Если итератора end2
нет, подразумевается, что обозначенная итератором beg2
последовательность такого же размера, что и исходная, обозначенная итераторами beg
и end
. Типы итераторов beg
и beg2
не обязаны совпадать. Но должна существовать возможность применить указанную операцию или заданный вызываемый объект к элементам этих двух последовательностей.
• dest
— итератор, обозначающий назначение. Последовательность назначения должна быть способна содержать столько элементов, сколько необходимо для исходной последовательности.
• unaryPred
и binaryPred
— унарные и бинарные предикаты (см. раздел 10.3.1), возвращающие применимый в условии тип и получающие соответственно один и два аргумента, являющиеся элементами исходного диапазона.
• comp
— бинарный предикат, отвечающий требованиям упорядочивания по ключу в ассоциативном контейнере (см. раздел 11.2.2).
• unaryOp
и binaryOp
— вызываемые объекты (см. раздел 10.3.2), которые могут быть вызваны с одним и двумя аргументами из исходного диапазона соответственно.
А.2.1. Алгоритмы поиска объекта
Эти алгоритмы осуществляют поиск в исходной последовательности заданного значения или последовательности значений.
Каждый алгоритм предоставляет две перегруженных версии. Первая версия для сравнения элементов использует оператор равенства (==
) базового типа, а вторая использует предоставленные пользователем предикаты unaryPred
или binaryPred
.
Для поиска этим алгоритмам требуются
find(beg, end, val)
find_if(beg, end, unaryPred)
find_if_not(beg, end, unaryPred)
count(beg, end, val)
count_if(beg, end, unaryPred)
Функция find()
возвращает итератор на первый элемент в исходном диапазоне, равный значению val
. Функция find_if()
возвращает итератор на первый элемент, для которого выполняется предикат unaryPred
. Функция find_if_not()
возвращает итератор на первый элемент, для которого предикат unaryPred
возвращает значение false
. Все три функции возвращают итератор end
, если искомый элемент не существует.
Функция count()
возвращает количество вхождений значения val
. Функция count_if()
подсчитает количество элементов, для которых предикат unaryPred
возвращает значение true
.
all_of(beg, end, unaryPred)
any_of(beg, end, unaryPred)
none_of(beg, end, unaryPred)
Возвращают логическое значение, указывающее, выполняется ли предикат unaryPred
для всех элементов, какого-нибудь элемента или ни одного элемента соответственно. Если последовательность пуста, функция any_of()
возвращает значение false
, а функции all_of()
и none_of()
— true
.
Этим алгоритмам требуются
adjacent_find(beg, end)
adjacent_find(beg, end, binaryPred)
Возвращает итератор на первую пару смежных совпадающих элементов. Возвращает итератор end
, если смежных совпадающих элементов нет.
search_n(beg, end, count, val)
search_n(beg, end, count, val, binaryPred)
Возвращает итератор на начало внутренней последовательности из count
равных элементов. Возвращает итератор end
, если такой внутренней последовательности не существует.
За исключением алгоритма find_first_of()
этим алгоритмам требуются две пары find_first_of()
использует
search(beg1, end1, beg2, end2)
search(beg1, end1, beg2, end2, binaryPred)
Возвращает итератор на первую позицию исходного диапазона, с которой начинается искомая последовательность. Возвращает итератор end1
, если искомая последовательность не найдена.
find_first_of(beg1, end1, beg2, end2)
find_first_of(beg1, end1, beg2, end2, binaryPred)
Возвращает итератор на первое вхождение в первом диапазоне любого элемента из второго диапазона. Возвращает итератор endl
, если искомое соответствие отсутствует.
find_end(beg1, end1, beg2, end2)