На этом шаге мы приведем общие сведения об алгоритмах.
Алгоритмы уже были использованы ранее. На 98 и 105 шагах рассматривалась роль алгоритмов и некоторые важные ограничения, связанные с их использованием. Любой алгоритм STL работает с одним или несколькими интервалами, заданными при помощи итераторов. Для первого интервала обычно задаются обе границы (начало и конец), а для остальных интервалов часто достаточно одного начала, потому что конец определяется количеством элементов в первом интервале. Перед вызовом необходимо убедиться в том, что заданные интервалы действительны, то есть начало интервала предшествует концу или совпадает с ним, а оба итератора относятся к одному контейнеру. Кроме того, дополнительные интервалы должны содержать достаточное количество элементов.
Алгоритмы работают в режиме замены, а не в режиме вставки, поэтому перед вызовом алгоритма необходимо убедиться в том, что приемный интервал содержит достаточное количество элементов. Специальные итераторы вставки (смотри 223 шаг) переводят алгоритм в режим вставки.
Для повышения мощи и гибкости некоторые алгоритмы позволяют передавать пользовательские операции, которые вызываются при внутренней работе алгоритма. Такие операции оформляются в виде функций или объектов функций. Функция, возвращающая логическое значение, называется предикатом. Предикаты применяются в следующих ситуациях.
Примеры функций и объектов функций, передаваемых в виде параметров алгоритмов, приводятся на 111 и 115 шагах.
На следующем шаге мы приведем классификацию алгоритмов.