Основная информация об алгоритмах.
Все алгоритмы делятся на две группы: те, которые изменяют данные, и те, которые их не изменяют.
Каждый алгоритм представляет собой шаблон функции или набор шаблонов функций. То есть, любой алгоритм может работать с абсолютно разными контейнерами.
Алгоритмы, возвращающие итератор, обычно, для сообщения о неудаче используют конец входной последовательности.
Алгоритмы не выполняют проверки диапазона на их входе и выходе.
Если алгоритм возвращает итератор, это будет итератор того же типа, что был на входе в алгоритм.
Алгоритмы определены в заголовочном файле <algorithm>.
Приведем наиболее используемые алгоритмы библиотеки STL.
- Немодифицирующие операции.
- for_earch() - выполняет операции для каждого элемента последовательности
- find() - находит первое вхождение значения в последовательность
- find_if() - находит первое соответствие предикату в последовательности
- count() - подсчитывает количество вхождений значения в последовательность
- count_if() - подсчитывает количество выполнений предиката в последовательности
- search() - находит первое вхождение последовательности как подпоследовательности
- search_n()- находит в последовательности подпоследовательность, состоящую из n повторений и возвращает её первое вхождение.
- Модифицирующие операции.
- copy() - копирует последовательность, начиная с первого элемента
- swap() - меняет местами два элемента
- replace() - заменяет элементы с указанным значением
- replace_if() - заменяет элементы при выполнении предиката
- replace_copy() - копирует последовательность, заменяя элементы с указанным значением
- replace_copy_if() - копирует последовательность, заменяя элементы при выполнении предиката
- fill() - заменяет все элементы данным значением
- remove() - удаляет элементы с данным значением
- remove_if() - удаляет элементы при выполнении предиката
- remove_copy() - копирует последовательность, удаляя элементы с указанным значением
- remove_copy_if() - копирует последовательность, удаляя элементы при выполнении предиката
- reverse() - меняет порядок следования элементов на обратный
- random_shuffle() - перемещает элементы согласно случайному равномерному распределению ("тасует" последовательность)
- transform() - выполняет заданную операцию над каждым элементом последовательности
- unique() - удаляет равные соседние элементы
- unique_copy() - копирует последовательность, удаляя равные соседние элементы
- Сортировка.
- sort() - сортирует последовательность с хорошей средней эффективностью
- partial_sort() - сортирует часть последовательности
- stable_sort() - сортирует последовательность, сохраняя порядок следования равных элементов
- lower_bound() - находит первый элемент, меньший чем заданное значение
- upper_bound() - находит первый элемент, больший чем заданное значение
- binary_search() - определяет, есть ли данный элемент в отсортированной последовательности
- merge() - сливает две отсортированные последовательности
- Работа с множествами.
- includes() - проверка на вхождение
- set_union() - объединение множеств
- set_intersection() - пересечение множеств
- set_difference() - разность множеств
- Минимумы и максимумы.
- min() - меньшее из двух
- max() - большее из двух
- min_element() - наименьшее значение в последовательности
- max_element() - наибольшее значение в последовательности
- Перестановки.
- next_permutation() - следующая перестановка в лексикографическом порядке
- prev_permutation() - предыдущая перестановка в лексикографическом порядке
Предыдущая
| Оглавление
| Следующая
|
Предыдущая
| Оглавление
| Следующая
|
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.