На этом шаге мы приведем классификацию алгоритмов.
Разные алгоритмы предназначены для решения разных задач, поэтому их можно классифицировать по основным областям применения. Например, одни алгоритмы только читают данные, другие модифицируют их, а третьи изменяют порядок следования элементов. В этом шаге кратко охарактеризованы возможности каждого алгоритма и их отличия от других похожих алгоритмов.
По названию алгоритма можно получить первое представление о его назначении. Проектировщики STL ввели два специальных суффикса.
Впрочем, не все алгоритмы, получающие функции и объекты функций, имеют суффикс _if. Если такая версия вызывается с дополнительными аргументами, отличающими ее от других версий, за ней сохраняется прежнее имя. Например, версия алгоритма min_element() с двумя аргументами находит в интервале минимальный элемент, при этом элементы сравниваются оператором <. В версии min_element() с тремя аргументами третий аргумент определяет критерий сравнения.
Приводимые ниже описания алгоритмов делятся на группы:
Если алгоритм принадлежит сразу нескольким категориям, он описывается в той категории, которую мы считаем наиболее важной.
На следующем шаге мы рассмотрим немодифицирующие алгоритмы.