<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 элемента, его можно задать этому, что они эквивалентны (в том смысле, что ни одно из значений не меньше другого) или что один меньше другого.Это приводит к тому, что порядок среди неравнозначных элементов.
Функции
Поиск 2 соседних элементов или равна или удовлетворяют указанному условию. |
|
Возвращает true при наличии условия для каждого элемента в заданном диапазоне. |
|
Возвращает true, когда условие присутствует хотя бы один раз в заданном диапазоне элементов. |
|
Проверяет, является ли элемент в сортированном диапазона, равно указанному значению или, эквивалентное ему в некотором смысле, двоичным предиката. |
|
Присвоит значения элементов из диапазона источника к диапазону назначения, повторяя через последовательность источника элементов и при присвоении ним новые позиции переднем направлении. |
|
Присвоит значения элементов из диапазона источника к диапазону назначения, повторяя через последовательность источника элементов и при присвоении ним новые позиции направление обратно. |
|
Скопируйте все элементы в заданном диапазоне, которые проверяют true для указанного состояния |
|
Копирует указанное число элементов. |
|
Возвращает число элементов в диапазоне, значения которого соответствуют указанному значению. |
|
Возвращает число элементов в диапазоне, значения которого соответствуют указанному условию. |
|
Сравнивает элемент 2 диапазонов элементом или на равенство или эквивалентности в некотором смысле указанным двоичным предиката. |
|
Находит пара позиций в упорядоченном диапазоне, первом меньше или числе в позицию указанного элемента и второго больше положение элемента, где смысла эквивалентности или упорядочение, используемых для установки позиции в последовательности может быть определено двоичным предиката. |
|
Присвоит один и тот же новое значение к каждому элементу в указанном диапазоне. |
|
Присвоить новое значение с заданным количеством элементов в диапазоне, начиная с указанным элементом. |
|
Находит позицию первого вхождения элемента в диапазоне, имеющий заданное значение. |
|
Выглядит в диапазоне для последнего самой длинной общей подпоследовательности, идентичны указанной последовательности или в некотором смысле, эквивалентные указанным двоичным предиката. |
|
Выполняет поиск первого вхождения какого-либо из нескольких значений в полигон или первое вхождение любого из нескольких элементов, эквивалентные в некотором смысле, определенные двоичным предиката к указанному набору элементов. |
|
Находит позицию первого вхождения элемента в диапазоне, удовлетворяющий указанному условию. |
|
Возвращает первый элемент в отображаемом диапазоне, который не удовлетворяет условию. |
|
Применяет указанный объект функции к каждому элементу на переднем порядке в диапазон и возвращает объект функции. |
|
Присвоит значения, созданные объектом функции к каждому элементу в диапазон. |
|
Присвоит значения, созданные объектом функции с заданным количеством элементов диапазон и возвращает в позицию после последнего присвоенным одному значению. |
|
Проверяет, содержит ли одно сортированное диапазон все элементы, содержащиеся в диапазоне сортировки секундой, где упорядочение или equivalence критерий между элементами могут быть определены двоичным предиката. |
|
Объединяет элементы из 2 последовательных отсортированных диапазонов в единый отсортированный диапазон, в котором определен критерий упорядочения может быть двоичным предиката. |
|
Возвращает true если элементы в указанном диапазоне формируют кучу. |
|
Возвращает true если указанный диапазон не являющаяся кучу до последнего элемента. |
|
Возвращает true, если все элементы в заданном диапазоне, которые проверяют true для условия поступают перед любыми элементами, которые проверяют false. |
|
Возвращает true если элементы в указанном диапазоне в порядке сортировки. |
|
Возвращает true если элементы в указанном диапазоне в порядке сортировки. |
|
Обмен 2 значений, на которые имелись ссылки по ключу, определенных итераторов. |
|
Сравнивает элемент элементом между последовательностями 2 для указания того, что, равно меньшему из 2. |
|
Находит позицию первого элемента в упорядоченном диапазоне, имеющий значение, большее или эквивалентно заданному значению, где критерий упорядочивания может быть определен двоичным предиката. |
|
Создает checked_array_iterator, который может использоваться другими алгоритмами. |
|
Преобразует элементы из указанного диапазона в кучу, в которой первый элемент наибольшие, и критерии сортировки может быть определена с двоичным предиката. |
|
Сравнивает 2 объекта и возвращает большой 2, где критерий упорядочивания может быть определен двоичным предиката. |
|
Ищет первое вхождение наибольшего элемента в указанном диапазоне, в котором определен критерий упорядочения может быть двоичным предиката. |
|
Объединяет все элементы из 2 диапазонов источника, отсортированных в единый отсортированный диапазон назначения, где определен критерий упорядочения может быть двоичным предиката. |
|
Сравнивает 2 объекта и возвращает, равно меньшему из 2, где определен критерий упорядочения может быть двоичным предиката. |
|
Ищет первое вхождение наименьшего элемента в указанном диапазоне, в котором определен критерий упорядочения может быть двоичным предиката. |
|
Сравнивает 2 входного параметра и возвращает их в виде пары, в порядке самого меньшего к самому большому. |
|
Выполняет работу выполнить min_element и max_element в одном вызове. |
|
Сравнивает элемент 2 диапазонов элементом или на равенство или числа в некотором смысле указанным двоичным предиката и найдите первая позиция, в которой различие заключается в том, что происходит. |
|
Перемещать элементы, связанные с заданным диапазоном. |
|
Перемещает элементы одного итератора в другой.Перемещение начинается с последним элементом в указанном диапазоне, и заканчивается с первым элементом в этом диапазоне. |
|
Порядок элементов в диапазоне, что исходный порядок будет заменен лексикографически следующим большим пермутированием, если он существует, где смысла следующего мая было указано с двоичным предиката. |
|
Возвращает true, когда условие никогда не присутствуют среди элементов в заданном диапазоне. |
|
Разделяет диапазон элементов, правильно поиск nth элемент последовательности в диапазоне, так что все элементы перед ним будет меньше или равна к нему и все элементы, следующие за ней в последовательности больше или равны. |
|
Упорядочивает указанное количество меньших элементов в диапазоне, в nondescending порядок сортировки или критерию, указанному в соответствии с двоичным предиката. |
|
Элементы копий из диапазона источника в назначение колебают, в которой упорядочиваются элементы источника или меньше или другим указанным двоичным предиката. |
|
Классифицирует элементы в диапазоне 2 непересекающиеся множества, причем эти элементы удовлетворяя унарный предикат, предшествующие те, которые не удается выполнить его. |
|
Копирует элементы, для которых условие true только одна цель и для false, что условие в другой.Элементы должны поступать из указанного диапазона. |
|
Возвращает первый элемент в заданном диапазоне, который не удовлетворяет условию.Элементы сортируются так, чтобы те, которые удовлетворяют условию придут перед потоками, не делают. |
|
Удаляет наибольший элемент от начала кучи к следующему - к- последняя позиция диапазона, а затем создать кучу с помощью форм из оставшихся элементов. |
|
Порядок элементов в диапазоне, что исходный порядок будет заменен лексикографически следующим большим пермутированием, если он существует, где смысла следующего мая было указано с двоичным предиката. |
|
Добавляет элемент в конец диапазона в существующей куче, состоящий из предыдущих элементов в диапазоне. |
|
Размещает последовательность элементов n в диапазоне в один из n!возможные размещения выбранных случайным образом. |
|
Удаляет заданное значение из заданного диапазона, не нарушая порядок оставшихся элементов и возвращение конец нового диапазона свободного указанного значения. |
|
Копирует диапазон элементов из источника с диапазоном назначения, за исключением того, что элементы не копируются, указанного значения, не нарушая порядок оставшихся элементов и возвращение конец нового диапазона назначения. |
|
Копирует диапазон элементов из источника с диапазоном назначения, за исключением того, что удовлетворять предикату не копируются, без нарушения работы порядок оставшихся элементов и возвращение конец нового диапазона назначения. |
|
Удаляет элементы, которые удовлетворяют предикату из заданного диапазона, не нарушая порядок оставшихся элементов и возвращение конец нового диапазона свободного указанного значения. |
|
Проверяет каждый элемент в диапазоне и заменяет его, если он соответствует заданному значению. |
|
Проверяет каждый элемент в диапазоне источника и заменяет его, если он соответствует заданному значению результат в процессе копирования в новый диапазон. |
|
Проверяет каждый элемент в диапазоне источника и заменяет его, если он удовлетворяет предикату указанный результат в процессе копирования в новый диапазон. |
|
Проверяет каждый элемент в диапазоне и заменяет его, если он удовлетворяет указанный предикат. |
|
Изменяет порядок элементов в пределах диапазона. |
|
Изменяет порядок элементов в диапазоне от источника в процессе копирования их в диапазон назначения |
|
Обменивает элементы в 2 смежных диапазонах. |
|
Обменивает элементы в 2 смежных диапазонах в диапазоне от источника и копирует результат к диапазону назначения. |
|
Выполняет поиск первого вхождения последовательности в полигон, элементы которого равно элемент в заданной последовательности элементов или элементы, определенные в некотором смысле эквивалентны двоичным предиката к элементам в указанной последовательности. |
|
Выполняет поиск первого самой длинной общей подпоследовательности в диапазоне, заданного количества элементов, имеющих определенное значение или связь к этому значению в соответствии с двоичным предиката. |
|
Подключить все элементы, принадлежащие одному сортированное диапазон источника, но не в секунду отсортировать диапазон источника, в одно, отсортированный диапазон назначения, где определен критерий упорядочения может быть двоичным предиката. |
|
Подключить все элементы, принадлежащие к обоим, отсортированный в единый отсортированный диапазонам источника, назначения, где расстояние критерий упорядочения может быть определен двоичным предиката. |
|
Подключить все элементы, принадлежащие одному, но не оба одновременно, из отсортированных диапазонов источника в одно сортировали диапазон назначения, где определен критерий упорядочения может быть двоичным предиката. |
|
Подключить все элементы, принадлежащие по крайней мере один из 2 диапазонов источника, отсортированных в единый отсортированный диапазон назначения, где определен критерий упорядочения может быть двоичным предиката. |
|
Упорядочивает элементы в указанном диапазоне в nondescending порядок сортировки или критерию, указанному в соответствии с двоичным предиката. |
|
Преобразует кучу в сортированное диапазон. |
|
Классифицирует элементы в диапазоне 2 непересекающиеся множества, причем эти элементы удовлетворяя унарный предикат, предшествующие те, которые не удается удовлетворить его сохранение относительный порядок элементов эквивалентности. |
|
Упорядочивает элементы в указанном диапазоне в nondescending порядок сортировки или критерию, указанному в соответствии с двоичным предиката и сохраняет относительный порядок элементов эквивалентности. |
|
Обменивает значения элементов между типами объектов 2, при присвоении содержимое первого объекта для второго объекта и содержимое второго к первому. |
|
Обменивает элементы одного диапазона с элементами других, равными - указанным размером диапазоном. |
|
Применяет указанный объект функции к каждому элементу в диапазоне источника или к паре элементов из 2 диапазонов источника и копирует возвращаемые значения объекта функции в диапазон. |
|
Удаляет повторяющиеся элементы, за друг друга в указанном диапазоне. |
|
Элементы копий из диапазона источника в назначение в диапазоне, за исключением ситуаций элементов, за друг друга. |
|
Находит позицию первого элемента в упорядоченном диапазоне, имеющее значение, которое больше указанного значения, когда критерий упорядочивания может быть определен двоичным предиката. |
См. также
Ссылки
Потокобезопасность в стандартной библиотеке C++
Стандартная библиотека шаблонов