algorithm (C++)

Перейти к навигацииПерейти к поиску

Стандартная библиотека языка программирования C++

Ввод-вывод:

Многопоточность:

  • atomic (C++11)
  • condition_variable (C++11)
  • future (C++11)
  • mutex (C++11)
  • shared_mutex (C++14)
  • thread (C++11)

Прочие:

  • algorithm
  • bitset
  • chrono (C++11)
  • codecvt (C++11)
  • complex
  • exception
  • functional
  • initializer_list (C++11)
  • iterator
  • limits
  • locale
  • memory
  • new
  • numeric
  • random (C++11)
  • ratio (C++11)
  • regex (C++11)
  • stdexcept
  • string
  • system_error (C++11)
  • tuple (C++11)
  • typeindex (C++11)
  • typeinfo
  • type_traits (C++11)
  • utility
  • valarray
Стандартная библиотека шаблонов

Последовательные контейнеры:

Ассоциативные контейнеры:

Контейнеры-адаптеры:

Стандартная библиотека языка программирования Си

algorithm — заголовочный файл в стандартной библиотеке языка программирования C++, включающий набор функций для выполнения алгоритмических операций над контейнерами и над другими последовательностями[1].

Все функции библиотеки расположены в пространстве имён std[2].

Категории алгоритмов

Алгоритмы стандартной библиотеки STL разделяются на следующие категории.

Описание алгоритмов

В данных ниже таблицах в колонке аргументов функции вы встретите следующие обозначения:

  1. first, last — итераторы конца и начала (first1, last1, first2, last2 — итераторы конца и начала 1 и 2 диапазона соответственно)
  2. middle — итератор, указывающий на определённую позицию в контейнере
  3. function, predicate, op и comp — функциональные объекты
  4. value, new, old и init — значения объектов, хранящихся в контейнерах
  5. a, b — некоторые объекты одного типа
  6. iter — итератор

Не изменяющие последовательные операции

Название функцииАргументы функцииОписание функции
adjacent_findfirst, lastВозвращает итератор, указывающий на первую пару одинаковых объектов
countfirst, last, valueВозвращает количество элементов, значение которых равно value
equalfirst1, last1, first2Возвращает значение true, если все соответствующие пары объектов из двух диапазонов равны
findfirst, last, valueВозвращает итератор, указывающий на первый элемент, равный значению value
for_eachfirst, last, functionПрименяет function ко всем объектам
mismatchfirst1, last1, first2Возвращает первую несовпадающую пару соответствующих объектов, расположенных в разных диапазонах позиций контейнера
searchfirst1, last1, first2, last2Проверяет, содержится ли второй диапазон внутри первого, возвращает начало совпадения или last1, если нет совпадения

Изменяющие последовательные операции

Название функцииАргументы функцииОписание функции
fillfirst, last, valueПрисваивает значение value всем объектам из диапазона
generatefirst, last, genЗаполняет диапазон значениями, получаемыми с помощью последовательных вызовов функции gen
iter_swapiter1, iter2Обменивает объекты, на которые указывают два итератора
removefirst, last, valueУдаляет из диапазона все значения, равные value
reversefirst, lastОбращает последовательность объектов из диапазона
replacefirst, last, old, newЗаменяет все объекты, равные old , объектами, равными new
rotatefirst, last, middleОтражает зеркально последовательность элементов
swapa, bЗаменяет один объект другим
swap_rangesfirst1, last1, first2Обменивает соответствующие объекты в двух диапазонах
transformfirst1, last1, first2, operatorПревращает объекты из диапазона 1 в новые объекты диапазона 2, применяя operator
uniquefirst, lastУдаляет все эквивалентные объекты в последовательности, кроме первого

Операции сортировки

Название функцииАргументы функцииОписание функции
nth_elementfirst, nth,lastПомещает n-й объект в позицию, которую он занимал бы после сортировки всего диапазона
sortfirst, lastСортирует объекты в диапазоне
stable_sortfirst, lastСортирует объекты в диапазоне. Если два объекта равны, их порядок не изменится.

Бинарные операции поиска

Название функцииАргументы функцииОписание функции
binary_searchfirst, last, valueВозвращает true, если значение value входит в интервал
equal_rangefirst, last, valueВозвращает пару объектов, представляющих собой нижнюю и верхнюю границы, между которыми можно вставить значение value без изменения порядка сортировки
lower_boundfirst, last, valueВозвращает итератор, указывающий на первую позицию, в которую можно вставить значение value без изменения порядка следования объектов
upper_boundfirst, last, valueВозвращает итератор, указывающий на последнюю позицию, в которую можно вставить значение value без изменения порядка следования объектов

Операции слияния

Название функцииАргументы функцииОписание функции
includesfirst1, last1, first2, last2Возвращает true, если все объекты из диапазона first2 last2 имеются также в диапазоне first1 last1 (только для работы с set и multiset)
mergefirst1, last1, first2, last2, first3соединяет отсортированные диапазоны 1 и 2 в диапазон 3
set_differencefirst1, last1, first2, last2, first3Создает упорядоченную разность множеств, заданных диапазонами 1 и 2(только для работы с set и multiset)
set_intersectionfirst1, last1, first2, last2, first3Создает упорядоченное пересечение элементов диапазонов 1 и 2(только для работы с set и multiset)
set_unionfirst1, last1, first2, last2, first3Создает упорядоченное объединение элементов диапазонов 1 и 2 (только для работы с set и multiset)

Кучи

Название функцииАргументы функцииОписание функции
make_heapfirst, lastСоздает кучу из значений диапазона first last
pop_heapfirst, lastМеняет значения в first и last-1. Помещает диапазон first last-1 в кучу
push_heapfirst, lastПомещает значение из last-1 в результирующую кучу (heap, область динамической памяти) диапазон от first до last
sort_heapfirst, lastУпорядочивает элементы в куче first last

Операции отношений

Название функцииАргументы функцииОписание функции
lexicographical_comparefirst1, last1, first2, last2Возвращает true, если последовательность в диапазоне 2 следует в алфавитном порядке за последовательностью диапазона 1
maxa, bВозвращает наибольшее из a, b
max_elementfirst, lastВозвращает итератор, указывающий на наибольший объект в диапазоне
mina, bВозвращает наименьшее из a, b
min_elementfirst,lastВозвращает итератор, указывающий на наименьший объект в диапазоне
next_permutationfirst, lastВыполняет одну перестановку в последовательности данного диапазона
prev_permutationfirst, lastВыполняет одну обратную перестановку в последовательности данного диапазона

Примечания

  1. ISO/IEC (2003). ISO/IEC 14882:2003(E): Programming Languages — C++ § 25 Algorithms library [lib.algorithms] para. 1
  2. Stroustrup, Bjarne. Programming : principles and practice using C++ (англ.). — Upper Saddle River, NJ: Addison-Wesley, 2009. — P. 729. — ISBN 9780321543721. Архивировано 19 марта 2016 года.. — «The standard library algorithms are found in <algorithm>.».

Литература

  • Лафоре P. Приложение E // Лафоре P. Объектно-ориентировочное программирование на с++. — Санкт-Петербург: Питер, 2004. — С. 836—843.

Ссылки