Инструменты пользователя

Инструменты сайта


examination:oop:question53

Обобщенные алгоритмы: назначение, классификация.

Алгоритмы - группа шаблонов функций, предназначенных для обработки данных.

Любой алгоритм STL работает с одним или несколькими интервалами, заданными при помощи итераторов. Для первого интервала обычно задаются обе границы (начало и конец), а для остальных интервалов часто достаточно одного начала, потому что конец определяется количеством элементов в первом интервале. Перед вызовом необходимо убедиться в том, что заданные интервалы действительны, то есть начало интервала предшествует концу или совпадает с ним, а оба итератора относятся к одному контейнеру. Кроме того, дополнительные интервалы должны содержать достаточное количество элементов.

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

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

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

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

Немодифицирующие алгоритмы сохраняют как порядок следования обрабатываемых элементов, так и их значения. Они работают с итераторами ввода и прямыми итераторами и поэтому могут вызываться для всех стандартных контейнеров. В таблице 1 перечислены алгоритмы стандартной библиотеки STL, не изменяющие состояния контейнера.

Название Описание

  • for_each() Выполняет операцию с каждым элементом
  • count() Возвращает количество элементов
  • count_if() Возвращает количество элементов, удовлетворяющих заданному критерию
  • min_element() Возвращает элемент с минимальным значением
  • max_element() Возвращает элемент с максимальным значением
  • find() Ищет первый элемент с заданным значением
  • find_if() Ищет первый элемент, удовлетворяющий заданному критерию
  • search_n() Ищет первые n последовательных элементов с заданными свойствами
  • search() Ищет первое вхождение подинтервала
  • find_end() Ищет последнее вхождение п
examination/oop/question53.txt · Последние изменения: 2014/01/15 12:22 (внешнее изменение)