STL/algorithm
Материал из Wiki.crossplatform.ru
'Стандартная библиотека шаблонов: 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 | Предыдущая перестановка в лексиграфическом порядке |
