×
Traktatov.net » Язык программирования C++. Пятое издание » Читать онлайн
Страница 702 из 714 Настройки
. Типы итераторов >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() этим алгоритмам требуются две пары