Для поиска этим алгоритмам требуются итераторы ввода.
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)
find_end(beg1, end1, beg2, end2, binaryPred)
Подобен алгоритму search()
, но возвращает итератор на последнюю позицию в исходном диапазоне, в которой второй диапазон встречается как внутренняя последовательность. Возвращает итератор end1
, если вторая последовательность пуста или не найдена.
А.2.2. Другие алгоритмы, осуществляющие только чтение
Для первых двух аргументов этим алгоритмам требуются итераторы ввода.
Алгоритмы equal()
и mismatch()
получают также дополнительный итератор ввода, обозначающий начало второго диапазона. Они также предоставляют две перегруженных версии. Первая версия для сравнения элементов использует оператор равенства (==
) базового типа, а вторая сравнивает элементы используя предоставленный пользователем предикат unaryPred
или binaryPred
.
for_each(beg, end, unaryOp)
Вызываемый объект (см. раздел 10.3.2) unaryOp
применяется к каждому элементу в исходном диапазоне. Возвращаемое значение объекта unaryOp
(если оно есть) игнорируется. Если итераторы позволяют запись в элементы при помощи оператора обращения к значению, то вызываемый объект unaryOp
способен изменять элементы.
mismatch(beg1, end1, beg2)