Здавалка
Главная | Обратная связь

Основная информация об алгоритмах.



Все алгоритмы делятся на две группы: те, которые изменяют данные, и те, которые их не изменяют.

Каждый алгоритм представляет собой шаблон функции или набор шаблонов функций. То есть, любой алгоритм может работать с абсолютно разными контейнерами.

Алгоритмы, возвращающие итератор, обычно, для сообщения о неудаче используют конец входной последовательности.

Алгоритмы не выполняют проверки диапазона на их входе и выходе.

Если алгоритм возвращает итератор, это будет итератор того же типа, что был на входе в алгоритм.

Алгоритмы определены в заголовочном файле <algorithm>.

Приведем наиболее используемые алгоритмы библиотеки STL.

  1. Немодифицирующие операции.
    • for_earch() - выполняет операции для каждого элемента последовательности
    • find() - находит первое вхождение значения в последовательность
    • find_if() - находит первое соответствие предикату в последовательности
    • count() - подсчитывает количество вхождений значения в последовательность
    • count_if() - подсчитывает количество выполнений предиката в последовательности
    • search() - находит первое вхождение последовательности как подпоследовательности
    • search_n()- находит в последовательности подпоследовательность, состоящую из n повторений и возвращает её первое вхождение.
  2. Модифицирующие операции.
    • 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() - копирует последовательность, удаляя равные соседние элементы
  3. Сортировка.
    • sort() - сортирует последовательность с хорошей средней эффективностью
    • partial_sort() - сортирует часть последовательности
    • stable_sort() - сортирует последовательность, сохраняя порядок следования равных элементов
    • lower_bound() - находит первый элемент, меньший чем заданное значение
    • upper_bound() - находит первый элемент, больший чем заданное значение
    • binary_search() - определяет, есть ли данный элемент в отсортированной последовательности
    • merge() - сливает две отсортированные последовательности
  4. Работа с множествами.
    • includes() - проверка на вхождение
    • set_union() - объединение множеств
    • set_intersection() - пересечение множеств
    • set_difference() - разность множеств
  5. Минимумы и максимумы.
    • min() - меньшее из двух
    • max() - большее из двух
    • min_element() - наименьшее значение в последовательности
    • max_element() - наибольшее значение в последовательности
  6. Перестановки.
    • next_permutation() - следующая перестановка в лексикографическом порядке
    • prev_permutation() - предыдущая перестановка в лексикографическом порядке
Предыдущая Оглавление Следующая
Предыдущая Оглавление Следующая






©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.