STL/algorithm
Материал из Wiki.crossplatform.ru
Версия от 19:12, 10 августа 2011; ViGOur (Обсуждение | вклад)
'Стандартная библиотека шаблонов: Algorithm'
Заголовочный файл <algorithm> определяет коллекцию функций специально разработанных для использования с диапазонами значений.
[править] Функции в <algorithm>
Не модифицирующие функции: | |
for_each | Выполяет операцию над каждым элементом последовательности |
find | Находит первое вхождение значения в последовательность |
find_if | Находит первое соответствие предикату в последовательности |
find_end | Находит последнее вхождение последовательности как подпоследовательности |
find_first_of | Находит значение из одной последовательности в другой |
adjacent_find | Находит пару соседних значений |
count | Подсчитывает количество вхождений данного значения в последовательность |
count_if | Подсчитывает количество выполнений данного предиката в последовательности |
mismatch | Находит пернвый элемент, в котором две последовательности различаются |
equal | true, если элементы в двух последовательностях попарно равны |
search | Находит первое вхождение последовательности как подпоследовательности |
search_n | Находит n-е вхождение значения в последовательность |
Модифицирующие функции: | |
copy | Копирует последовательность, начиная с первого элемента |
copy_backward | Копирует последовательность, начиная с последнего элемента |
swap | Меняет местами два элемента |
swap_ranges | Меняет местами элементы двух последовательностей |
iter_swap | Меняет местами два элемента, на которые указывают итераторы |
transform | Выполняет операцию над каждым элементом в последовательности |
replace | Заменяет элементы с указанным значением |
replace_if | Заменяет элементы при выполнении предиката |
replace_copy | Копирует последовательность, заменяя элементы с указанным значением |
replace_copy_if | Копирует последовательность, заменяя элементы при выполнении предиката |
fill | Заменяет все элементы данным значением |
fill_n | Заменяет первые n элементов указанным значением |
generate | Заменяет все элементы результатом операции |
generate_n | Заменяет первые n элементов результатом операции |
remove | Удаляет элементы с данным значением |
remove_if | Удаляет элементы при выполнении предиката |
remove_copy | Копирует последовательность, удаляя элементы с указанным значением |
remove_copy_if | Копирует последовательность, удаляя элементы, удовлетворяющие предикату |
unique | Удаляет равные соседние элементы |
unique_copy | Копирует последовательность, удаляя равные соседние элементы |
reverse | Меняет порядок следования элементов на обратный |
reverse_copy | Копирует последовательность в обратном порядке |
rotate | Перемещает элементы циклически |
rotate_copy | Копирует элементы циклической последовательности |
random_shuffle | Перемещает элементы согласно случайному равномерному распределению ("тасует" последовательность) |
partition | Перемещает вперёд элементы, удовлетворяющие предикату |
stable_partition | Перемещает вперёд элементы, удовлетворяющие предикату, сохраняя их относительный порядок следования |
Сортировка: | |
sort | Сортирует с хорошей средней эффективностью |
stable_sort | Сортирует, сохраняя порядок следования равных элементов |
partial_sort | Упорядочивает первую часть последовательности |
partial_sort_copy | Копирует, упорядочивая первую часть последовательности |
nth_element | Ставит на нужное место n-й элемент |
Бинарный поиск (выполняется с отсортированными диапазонами): | |
lower_bound | Находит первое вхождение значения |
upper_bound | Находит первый элемент, больший чем значение |
equal_range | Находит последовательность с данным значением |
binary_search | Проверяет есть ли указанное значение в отсортированной последовательности |
Объединение (выполняется с отсортированными диапазонами): | |
merge | Объединяет две отсортированные последоватильности |
inplace_merge | Объединяет две последовательно отсортированные последоватильности |
includes | true, если последовательность является подпоследовательностью другой |
set_union | Создает отсортированное объединение |
set_intersection | Создает отсортированное пересечение |
set_difference | Создает отсортированную последовательность элементов, входящих в первую, но не входящих во вторую последовательность |
set_symmetric_difference | Создает отсортированную последовательность элементов, присутствующих лишь в одной из двух последовательностей |
Куча: | |
make_heap | Подготавливает последовательность к использованию в качестве кучи |
push_heap | Добавляет в кучу элемент |
pop_heap | Удаляет из кучи элемент |
sort_heap | Сортирует кучу |
Min/max: | |
min | Меньшее из двух значений |
max | Большее из двух значений |
min_element | Наименьшее значение в последовательности |
max_element | Наибольшее значение в последовательности |
lexicographical_compare | Лексикографически первая из двух последовательностей |
Перестановки: | |
next_permutation | Следующая перестановка в лексиграфическом порядке |
prev_permutation | Предыдущая перестановка в лексиграфическом порядке |