Поделиться через


<algorithm>

Определяет стандартные функции шаблона контейнера библиотеки стандартных шаблонов (STL), которые выполняют алгоритмы.

namespace std {
template<class InputIterator, class Predicate>
    bool all_of (
        InputIterator _First, 
        InputIterator _Last,
        Predicate _Pred
    );
template<class InputIterator, class Predicate>
    bool any_of (
        InputIterator _First, 
        InputIterator _Last,
        Predicate _Pred
    );
template<class InputIterator, class Predicate>
    bool none_of (
        InputIterator _First, 
        InputIterator _Last,
        Predicate _Pred
    );
template<class InputIterator, class Function>
    Fn1 for_each (
        InputIterator _First, 
        InputIterator _Last, 
        Function _Func
    );
template<class InputIterator, class Type>
    InputIterator find (
        InputIterator _First, 
        InputIterator _Last, 
        const Type& _Val
    );
template<class InputIterator, class Predicate>
    InputIterator find_if (
        InputIterator _First, 
        InputIterator _Last, 
        Predicate _Pred
    );
template<class InputIterator, class Predicate>
    InputIterator find_if_not (
        InputIterator _First, 
        InputIterator _Last,
        Predicate _Pred
    ); 
template<class ForwardIterator1, class ForwardIterator2>
    ForwardIterator1 find_end (
        ForwardIterator1 _First1, 
        ForwardIterator1 _Last1,
        ForwardIterator2 _First2, 
        ForwardIterator2 _Last2
    );
template<class ForwardIterator1, class ForwardIterator2, 
         class Predicate>
    ForwardIterator1 find_end (
        ForwardIterator1 _First1, 
        ForwardIterator1 _Last1,
        ForwardIterator2 _First2, 
        ForwardIterator2 _Last2, 
        Predicate _Pred
    );
template<class InputIterator, class ForwardIterator>
    InputIterator1 find_first_of (
        InputIterator _First1, 
        InputIterator _Last1,
        ForwardIterator _First2, 
        ForwardIterator _Last2
    );
template<class InputIterator, class ForwardIterator, 
         class Predicate>
    InputIterator1 find_first_of (
        InputIterator _First1, 
        InputIterator _Last1,
        ForwardIterator _First2, 
        ForwardIterator _Last2, 
        Predicate _Pred
    );
template<class ForwardIterator>
    ForwardIterator adjacent_find (
        ForwardIterator _First, 
        ForwardIterator _Last
    );
template<class ForwardIterator, class Predicate>
    ForwardIterator adjacent_find (
        ForwardIterator _First, 
        ForwardIterator _Last, 
        Predicate _Pred
    );
template<class InputIterator, class Type>
    typename iterator_traits<InputIterator>::difference_type
        count (
            InputIterator _First, 
            InputIterator _Last,
            const Type& _Val
        );
template<class InputIterator, class Predicate>
    typename iterator_traits<InputIterator>::difference_type
        count_if (
            InputIterator _First, 
            InputIterator _Last,
            Predicate _Pred
        );
template<class InputIterator1, class InputIterator2>
    pair<InputIterator1, InputIterator2> 
        mismatch (
            InputIterator1 _First1, 
            InputIterator1 _Last1,
            InputIterator2 _First2
        );
template<class InputIterator1, class InputIterator2, class Predicate>
    pair<InputIterator1, InputIterator2> 
        mismatch (
            InputIterator1 _First1, 
            InputIterator1 _Last1,
            InputIterator2 _First2, 
            Predicate _Pred
        );
template<class InputIterator1, class InputIterator2>
    bool equal (
        InputIterator1 _First1, 
        InputIterator1 _Last1, 
        InputIterator2 _First2
    );
template<class InputIterator1, class InputIterator2, class Predicate>
    bool equal (
        InputIterator1 _First1, 
        InputIterator1 _Last1, 
        InputIterator2 _First2, 
        Predicate _Pred
    );
template<class ForwardIterator1, class ForwardIterator2>
    ForwardIterator1 search (
        ForwardIterator1 _First1, 
        ForwardIterator1 _Last1,
        ForwardIterator2 _First2, 
        ForwardIterator2 _Last2
    );
template<class ForwardIterator1, class ForwardIterator2, 
         class Predicate>
    ForwardIterator1 search (
        ForwardIterator1 _First1, 
        ForwardIterator1 _Last1,
        ForwardIterator2 _First2, 
        ForwardIterator2 _Last2, 
        Predicate _Pred
    );
template<class ForwardIterator, class Size, class Type>
    ForwardIterator search_n (
        ForwardIterator _First, 
        ForwardIterator _Last,
        Size _Count, 
        const Type& _Val
    );
template<class ForwardIterator, class Size, class Type, 
         class Predicate>
    ForwardIterator search_n (
        ForwardIterator _First, 
        ForwardIterator _Last,
        Size _Count, 
        const Type& _Val, 
        Predicate _Pred
    );

Заметки

Алгоритмы STL родовы, так как они могут работать с различными структуры данных.Структуры данных, которые они могут работать с переданным ей включают не только классы контейнера STL, как vector и list, но также программа- указанные структуры данных и массивы элементов, удовлетворяющих требованиям указанного алгоритма.Алгоритмы STL достигает этого уровня обычности путем доступа и просматривать элементы контейнера косвенно через итераторы.

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

Алгоритмы STL расширяют действия, поддерживаемые операциями и функции-членами каждого сегмента STL и позволяют действие, например, с различными типами объект-контейнеров одновременно.2 Суффикса использовались для передачи сведений о назначении алгоритмов.

  • Если суффикс указывает на то, что алгоритм используется с функцией возражает работать на значениях элементов, а не самих значений элементов.Алгоритм find_if ищет элементы, значения которых удовлетворяют критерию, определенный объектом функции и алгоритм find выполняет поиск указанного значения.

  • _copy Суффикс указывает, что алгоритм не только управляет значения элементов, но также копирует измененные значения в диапазоне назначения.Алгоритм reverse изменяет порядок элементов в диапазоне, и алгоритм reverse_copy также копирует результат в диапазон.

Алгоритмы STL часто делятся на группы, которые отображают что-либо о них назначения или требований.Они включают изменение алгоритмы, которые изменяют значения элементов по сравнению с nonmodifying алгоритмами, не делают.Алгоритмы видоизменяя изменения порядка элементов, но не значения их элементов.Удаление алгоритмы может исключить элементы из диапазона или копирования диапазона.Алгоритмы сортировки переупорядочивают элементы в диапазоне различными способами и отсортированные алгоритмы диапазона только воздействуют на алгоритмах элементы, которые были отсортированы определенным образом.

Алгоритмы STL числовые, которые предоставляются для числовых обработки имеют собственный файл заголовка <numeric> и используемые объекты и основная указаны в функции <functional> заголовка возражают, что логические значения, возвращают в качестве предикатов.Предикат по умолчанию является сравнение operator<.Как правило, элементы упорядоченной необходимостью быть меньше подходит, так что, если какие-либо 2 элемента, его можно задать этому, что они эквивалентны (в том смысле, что ни одно из значений не меньше другого) или что один меньше другого.Это приводит к тому, что порядок среди неравнозначных элементов.

yah1y2x8.collapse_all(ru-ru,VS.110).gifФункции

adjacent_find

Поиск 2 соседних элементов или равна или удовлетворяют указанному условию.

all_of

Возвращает true при наличии условия для каждого элемента в заданном диапазоне.

any_of

Возвращает true, когда условие присутствует хотя бы один раз в заданном диапазоне элементов.

binary_search

Проверяет, является ли элемент в сортированном диапазона, равно указанному значению или, эквивалентное ему в некотором смысле, двоичным предиката.

copy

Присвоит значения элементов из диапазона источника к диапазону назначения, повторяя через последовательность источника элементов и при присвоении ним новые позиции переднем направлении.

copy_backward

Присвоит значения элементов из диапазона источника к диапазону назначения, повторяя через последовательность источника элементов и при присвоении ним новые позиции направление обратно.

copy_if

Скопируйте все элементы в заданном диапазоне, которые проверяют true для указанного состояния

copy_n

Копирует указанное число элементов.

count

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

count_if

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

равно

Сравнивает элемент 2 диапазонов элементом или на равенство или эквивалентности в некотором смысле указанным двоичным предиката.

equal_range

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

fill

Присвоит один и тот же новое значение к каждому элементу в указанном диапазоне.

fill_n

Присвоить новое значение с заданным количеством элементов в диапазоне, начиная с указанным элементом.

find

Находит позицию первого вхождения элемента в диапазоне, имеющий заданное значение.

find_end

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

find_first_of

Выполняет поиск первого вхождения какого-либо из нескольких значений в полигон или первое вхождение любого из нескольких элементов, эквивалентные в некотором смысле, определенные двоичным предиката к указанному набору элементов.

find_if

Находит позицию первого вхождения элемента в диапазоне, удовлетворяющий указанному условию.

find_if_not

Возвращает первый элемент в отображаемом диапазоне, который не удовлетворяет условию.

for_each

Применяет указанный объект функции к каждому элементу на переднем порядке в диапазон и возвращает объект функции.

создание

Присвоит значения, созданные объектом функции к каждому элементу в диапазон.

generate_n

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

включает

Проверяет, содержит ли одно сортированное диапазон все элементы, содержащиеся в диапазоне сортировки секундой, где упорядочение или equivalence критерий между элементами могут быть определены двоичным предиката.

inplace_merge

Объединяет элементы из 2 последовательных отсортированных диапазонов в единый отсортированный диапазон, в котором определен критерий упорядочения может быть двоичным предиката.

is_heap

Возвращает true если элементы в указанном диапазоне формируют кучу.

is_heap_until

Возвращает true если указанный диапазон не являющаяся кучу до последнего элемента.

is_partitioned

Возвращает true, если все элементы в заданном диапазоне, которые проверяют true для условия поступают перед любыми элементами, которые проверяют false.

is_sorted

Возвращает true если элементы в указанном диапазоне в порядке сортировки.

is_sorted_until

Возвращает true если элементы в указанном диапазоне в порядке сортировки.

iter_swap

Обмен 2 значений, на которые имелись ссылки по ключу, определенных итераторов.

lexicographical_compare

Сравнивает элемент элементом между последовательностями 2 для указания того, что, равно меньшему из 2.

lower_bound

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

make_checked_array_iterator

Создает checked_array_iterator, который может использоваться другими алгоритмами.

make_heap

Преобразует элементы из указанного диапазона в кучу, в которой первый элемент наибольшие, и критерии сортировки может быть определена с двоичным предиката.

max

Сравнивает 2 объекта и возвращает большой 2, где критерий упорядочивания может быть определен двоичным предиката.

max_element

Ищет первое вхождение наибольшего элемента в указанном диапазоне, в котором определен критерий упорядочения может быть двоичным предиката.

слияние

Объединяет все элементы из 2 диапазонов источника, отсортированных в единый отсортированный диапазон назначения, где определен критерий упорядочения может быть двоичным предиката.

min

Сравнивает 2 объекта и возвращает, равно меньшему из 2, где определен критерий упорядочения может быть двоичным предиката.

min_element

Ищет первое вхождение наименьшего элемента в указанном диапазоне, в котором определен критерий упорядочения может быть двоичным предиката.

minmax

Сравнивает 2 входного параметра и возвращает их в виде пары, в порядке самого меньшего к самому большому.

minmax_element

Выполняет работу выполнить min_element и max_element в одном вызове.

несоответствие

Сравнивает элемент 2 диапазонов элементом или на равенство или числа в некотором смысле указанным двоичным предиката и найдите первая позиция, в которой различие заключается в том, что происходит.

<alg> move

Перемещать элементы, связанные с заданным диапазоном.

move_backward

Перемещает элементы одного итератора в другой.Перемещение начинается с последним элементом в указанном диапазоне, и заканчивается с первым элементом в этом диапазоне.

next_permutation

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

none_of

Возвращает true, когда условие никогда не присутствуют среди элементов в заданном диапазоне.

nth_element

Разделяет диапазон элементов, правильно поиск nth элемент последовательности в диапазоне, так что все элементы перед ним будет меньше или равна к нему и все элементы, следующие за ней в последовательности больше или равны.

partial_sort

Упорядочивает указанное количество меньших элементов в диапазоне, в nondescending порядок сортировки или критерию, указанному в соответствии с двоичным предиката.

partial_sort_copy

Элементы копий из диапазона источника в назначение колебают, в которой упорядочиваются элементы источника или меньше или другим указанным двоичным предиката.

раздел

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

partition_copy

Копирует элементы, для которых условие true только одна цель и для false, что условие в другой.Элементы должны поступать из указанного диапазона.

partition_point

Возвращает первый элемент в заданном диапазоне, который не удовлетворяет условию.Элементы сортируются так, чтобы те, которые удовлетворяют условию придут перед потоками, не делают.

pop_heap

Удаляет наибольший элемент от начала кучи к следующему - к- последняя позиция диапазона, а затем создать кучу с помощью форм из оставшихся элементов.

prev_permutation

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

push_heap

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

random_shuffle

Размещает последовательность элементов n в диапазоне в один из n!возможные размещения выбранных случайным образом.

remove

Удаляет заданное значение из заданного диапазона, не нарушая порядок оставшихся элементов и возвращение конец нового диапазона свободного указанного значения.

remove_copy

Копирует диапазон элементов из источника с диапазоном назначения, за исключением того, что элементы не копируются, указанного значения, не нарушая порядок оставшихся элементов и возвращение конец нового диапазона назначения.

remove_copy_if

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

remove_if

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

replace

Проверяет каждый элемент в диапазоне и заменяет его, если он соответствует заданному значению.

replace_copy

Проверяет каждый элемент в диапазоне источника и заменяет его, если он соответствует заданному значению результат в процессе копирования в новый диапазон.

replace_copy_if

Проверяет каждый элемент в диапазоне источника и заменяет его, если он удовлетворяет предикату указанный результат в процессе копирования в новый диапазон.

replace_if

Проверяет каждый элемент в диапазоне и заменяет его, если он удовлетворяет указанный предикат.

reverse

Изменяет порядок элементов в пределах диапазона.

reverse_copy

Изменяет порядок элементов в диапазоне от источника в процессе копирования их в диапазон назначения

вращать

Обменивает элементы в 2 смежных диапазонах.

rotate_copy

Обменивает элементы в 2 смежных диапазонах в диапазоне от источника и копирует результат к диапазону назначения.

поиск

Выполняет поиск первого вхождения последовательности в полигон, элементы которого равно элемент в заданной последовательности элементов или элементы, определенные в некотором смысле эквивалентны двоичным предиката к элементам в указанной последовательности.

search_n

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

set_difference

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

set_intersection

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

set_symmetric_difference

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

set_union

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

sort

Упорядочивает элементы в указанном диапазоне в nondescending порядок сортировки или критерию, указанному в соответствии с двоичным предиката.

sort_heap

Преобразует кучу в сортированное диапазон.

stable_partition

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

stable_sort

Упорядочивает элементы в указанном диапазоне в nondescending порядок сортировки или критерию, указанному в соответствии с двоичным предиката и сохраняет относительный порядок элементов эквивалентности.

обмен

Обменивает значения элементов между типами объектов 2, при присвоении содержимое первого объекта для второго объекта и содержимое второго к первому.

swap_ranges

Обменивает элементы одного диапазона с элементами других, равными - указанным размером диапазоном.

преобразование

Применяет указанный объект функции к каждому элементу в диапазоне источника или к паре элементов из 2 диапазонов источника и копирует возвращаемые значения объекта функции в диапазон.

unique

Удаляет повторяющиеся элементы, за друг друга в указанном диапазоне.

unique_copy

Элементы копий из диапазона источника в назначение в диапазоне, за исключением ситуаций элементов, за друг друга.

upper_bound

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

См. также

Ссылки

Потокобезопасность в стандартной библиотеке C++

Стандартная библиотека шаблонов

Другие ресурсы

Файлы заголовков