Приложение к главе 1.1

Некоторые функции библиотеки algorithm

Функция

Действие

Не модифицирующие операции

accumulate

Складывает диапазон элементов

djacent_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

Вычисляет объединение двух множеств

Min/Max

max

Возвращает больший из двух элементов

max_element

Возвращает наибольший элемент в диапазоне

min

Возвращает меньший из двух элементов

min_element

Возвращает наименьший элемент в диапазоне

lexicographical_compare

Возвращает истину, если один диапазон лексикографически меньше, чем другой

next_permutation

Получает следующую в лексикографическом порядке перестановку элементов диапазона

prev_permutation

Получает следующую в лексикографическом порядке перестановку элементов диапазона