Алгоритмы STL

Материал из cppreference.com
< cpp
Перейти к: навигация, поиск

Следующие функции определены в <algorithm> или <numeric>, и являются составляющими пространства имен std.

Не модифицирующие операции
accumulate складывает диапазон элементов
adjacent_difference считает разницу между смежными элементами диапазона
adjacent_find находит два идентичных (или имеющих другое отношение) элемента, смежных друг с другом
count возвращает количество элементов, соответствующее данному значению
count_if возвращает количество элементов, для которых предикат является истиной
equal определяет, одинаковы ли два множества элементов
find находит значение в данном диапазоне
find_end находит последнюю последовательность элеметов в определенном диапазоне
find_first_of ищет первое вхождение элемента во множестве элементов
find_if ищет первое вхождение элемента, для которого верен определенный предикат
for_each применяет функцию к диапазону элементов
inner_product считает внутренний продукт двух диапазонов элементов
mismatch находит первую позицию, в которой два диапазона различны
partial_sum считает частичную сумму диапазона элементов
search производит поиск в диапазоне элементов
search_n ищет N последовательных копий элемента в диапазоне
Модифицирующие операции
copy копирует некоторый диапазон элементов в новое место
copy_backward копирует диапазон элементов в обратном порядке
fill присваивает диапазону элементов определенное значение
fill_n присваивает значение некоторому количеству элементов
generate сохраняет результат функции в диапазоне
generate_n сохраняет результат N применений функции
iter_swap меняет местами элементы, обозначенные двумя итераторами
partition делит диапазон элементов на две группы
random_shuffle случайное перемешивание элементов диапазона
remove удаляет элемент, равный определенному значению
remove_copy копирует диапазон элементов, за исключением элементов, равных определенному значению
remove_copy_if создает копию диапазона, за исключением элементов, для которых предикат является истинным
remove_if удаляет все элементы, для которых предикат является истинным
replace заменяет каждое вхождение некоторого значения в диапазоне другим значением
replace_copy копирует диапазон, заменяя определенные значения новыми
replace_copy_if копирует диапазон значений, заменяя те, для которых предикат является истинным
replace_if заменяет значения тех элементов, для которых предикат является истинным
reverse изменяет порядок следования элементов некоторого множества на обратный
reverse_copy создает копию некоторого диапазона, изменяя порядок следования элементов на обратный
rotate двигает элементы множества влево на некоторое количество позиций
rotate_copy копирует и диапазон, сдвигая все его элементы на некоторое количество позиций
stable_partition делит элементы на две группы, сохраняя их относительный порядок
swap меняет местами значения двух объектов
swap_ranges меняет местами два диапазона элементов
transform применяет функцию к диапазону элементов
unique удаляет дубликаты элементов в диапазоне
unique_copy создает копию диапазона, которая не содержит дубликатов элементов
Сортировка
nth_element вставляет элемент диапазон, сохраняя упорядоченность, и проверяет, что нет элементов, для которых элемент слева больше чем лемент справа
partial_sort сортирует первые N элементов диапазона
partial_sort_copy копирует и частично сортирует диапазон элементов
sort сортирует диапазон по возрастанию
stable_sort сортирует диапазон элементов, сохраняя относительное положение между равными элементами
Бинарный поиск (операции для отсортированных диапазонов)
binary_search определяет, присутствует ли элемент в некотором диапазоне
equal_range ищет диапазон элементов, равных определенному элементу
lower_bound ищет первое место в диапазоне, в которое можно вставить значение, сохраняя упорядоченность
upper_bound ищет последнее место, куда можно вставить значения, сохраняя упорядоченность (первое место, в котором элемент больше чем вставляемое значение)
Слияние (операции для отсортированных диапазонов)
includes возвращает истину, если одно общество является подмножеством другого
inplace_merge производит слияние двух упарядоченных диапазонов, сохраняя результат в них
merge производит слияние двух упорядоченных диапазонов
set_difference считает разницу между двумя множествами
set_intersection считает пересечение двух множеств
set_symmetric_difference считает симметричную разность между двумя множествами
set_union вычисляет объединение двух множеств
Куча (Heap)
is_heap возвращает истину, если данный диапазон является кучей
make_heap создает кучу из диапазона элементов
pop_heap удаляет наибольший элемент из кучи
push_heap добавляет элемент в кучу
sort_heap превращает кучу в упорядоченный диапазон
Min/Max
max возвращает больший из двух элементов
max_element возвращает наибольший элемент в диапазоне
min возвращает меньший из двух элементов
min_element возвращает наименьший элемент в диапазоне
lexicographical_compare возвращает истину, если один диапазон лексикографически меньше, чем другой
next_permutation получает следующую в лексикографическом порядке перестановку элементов диапазона
prev_permutation получает следующую в лексикографическом порядке перестановку элементов диапазона
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты
На других языках