Алгоритмы STL. Классификация алгоритмов

   
На этом шаге мы приведем классификацию алгоритмов.

   
Разные алгоритмы предназначены для решения разных задач, поэтому их можно классифицировать по основным областям применения.
Например, одни алгоритмы только читают данные, другие модифицируют их, а третьи изменяют порядок следования элементов. В
этом шаге кратко охарактеризованы возможности каждого алгоритма и их отличия от других похожих алгоритмов.

   
По названию алгоритма можно получить первое представление о его назначении. Проектировщики STL ввели два специальных
суффикса.

  • Суффикс _if. Суффикс _if используется при наличии двух похожих форм алгоритма с одинаковым
    количеством параметров; первой форме передается значение, а второй - функция или объект функции. В этом случае версия без
    суффикса _if используется при передаче значения, а версия с суффиксом _if - при передаче функции или объекта
    функции. Например, алгоритм find() ищет элемент с заданным значением, а алгоритм find_if() - элемент,
    удовлетворяющий критерию, определенному в виде функции или объекта функции.

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

  • Суффикс _сору. Суффикс _сору означает, что алгоритм не только обрабатывает элементы, но и
    копирует их в приемный интервал. Например, алгоритм reverse() переставляет элементы интервала в обратном порядке, a
    reverse_сору() копирует элементы в другой интервал в обратном порядке.

   
Приводимые ниже описания алгоритмов делятся на группы:

  • немодифицирующие алгоритмы;
  • модифицирующие алгоритмы;
  • алгоритмы удаления;
  • перестановочные алгоритмы;
  • алгоритмы сортировки;
  • алгоритмы упорядоченных интервалов;
  • численные алгоритмы.

   
Если алгоритм принадлежит сразу нескольким категориям, он описывается в той категории, которую мы считаем наиболее важной.

   
На следующем шаге мы рассмотрим немодифицирующие алгоритмы.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий