А.2. Краткий обзор алгоритмов
В библиотеке определено более 100 алгоритмов. Чтобы научиться их использовать, следует понять структуру, а не запоминать подробности применения каждого из них. Лежащая в их основе архитектура описана в главе 10, а в этом разделе описан каждый из алгоритмов.
• beg
и end
— итераторы, обозначающие диапазон элементов (см. раздел 9.2.1). Почти все алгоритмы работают с последовательностями, обозначенными итераторами beg
и end
.
• 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
.