<algorithm>
Określa standardowy szablon biblioteki (STL) kontenera szablonu funkcji, które wykonują algorytmów.
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
);
Uwagi
Algorytmy STL są ogólne, ponieważ mogą one działać na różnych struktur danych.Struktury danych, które mogą one działać na obejmują nie tylko klasami STL kontenera takie jak vector i list, ale również struktur danych zdefiniowanych przez program i tablice elementów, które spełniają wymogi określonego algorytmu.Algorytmy STL osiągnąć tego poziomu ogólności przez dostęp i przechodzenie do elementów kontenera pośrednio poprzez Iteratory.
Algorytmy STL procesu iteratora zakresów, które zazwyczaj są określone przez ich początkową lub końcową pozycji.Zakresy określone muszą być prawidłowe w tym sensie, że wszystkie wskaźniki w zakresach muszą być dereferenceable i w ramach sekwencji każdego zakresu, ostatniej pozycji musi być osiągalny od pierwszego przez incrementation.
Algorytmy STL rozszerzenia działań wspieranych przez operacje i funkcji elementów członkowskich każdego kontenera STL i umożliwienia pracy, na przykład z różnymi typami obiektów kontenera, w tym samym czasie.Sufiksy dwa były używane do przekazywania informacji o celu algorytmów.
Jeśli sufiks wskazuje, że algorytm jest używany w funkcji obiektów działających wartości elementów, a nie wartości ze sobą elementy.find_if Algorytm szuka elementów, których wartości spełniają kryterium określonym przez obiekt funkcji i find algorytm wyszukiwania dla określonej wartości.
Sufiks _copy wskazuje, że algorytm nie tylko manipuluje wartości elementów, ale także skopiowanie zmodyfikowane wartości do zakresu docelowego.reverse Algorytm Odwraca kolejność elementów w zakresie i reverse_copy algorytm kopiuje również wynik do zakresu docelowego.
Algorytmy STL często klasyfikuje się w grupy, które wskazują coś o ich cel lub wymagań.Należą do modyfikowania algorytmów, które zmiany wartości elementów stosunku nonmodifying algorytmów, które nie.Algorytmy szybkich mutacji zmienić kolejność elementów, lecz nie wartości ich elementów.Usuwanie algorytmów można wyeliminować elementy z zakresu lub kopiowania zakresu.Algorytmy sortowania kolejność elementów w zakresie na różne sposoby i algorytmy sortowanym zakresie tylko działają na algorytmy, którego elementy zostały posortowane w określony sposób.
Algorytmy numeryczne STL, dostarczane dla numeryczny przetwarzania mają własne nagłówka pliku <numeric>, i funkcji obiektów i adaptery są zdefiniowane w nagłówku <functional> obiektów funkcji, które zwracają wartości logicznych są znane jako predykatów.Domyślne predykatu dwuelementowego jest porównanie operator<.Ogólnie rzecz biorąc elementy są uporządkowane muszą być mniej niż porównywalne tak, że biorąc pod uwagę dwa elementy, można go określona albo są równoważne (w tym sensie, że nie jest mniejsza niż drugi) lub jeden jest mniej niż inne.Powoduje porządkowanie elementów nonequivalent.
Funkcje
Wyszukuje dwóch sąsiadujących elementów, które są równe lub spełniają określony warunek. |
|
Zwraca true gdy warunek jest obecny w każdy element z podanego zakresu. |
|
Zwraca true gdy warunek jest obecny co najmniej raz w określonym zakresie elementów. |
|
Sprawdza, czy istnieje element w sortowanym zakresie jest równa określonej wartości lub jest równoważne w znaczeniu określonym przez predykatu dwuelementowego. |
|
Przypisuje wartości elementów z zakresu źródłowego zakres docelowy, iteracja źródła sekwencja elementów i przypisywanie im nowych stanowisk w kierunku do przodu. |
|
Przypisuje wartości elementów z zakresu źródłowego zakres docelowy, iteracja źródła sekwencja elementów i przypisywanie im nowych stanowisk w kierunku do tyłu. |
|
Skopiuj wszystkie elementy w danym zakresie, że true dla określonego warunku |
|
Kopiuje określoną liczbę elementów. |
|
Zwraca liczbę elementów w zakresie, w których wartości odpowiadają określonej wartości. |
|
Zwraca liczbę elementów w zakresie, w których wartości spełniają określony warunek. |
|
Porównuje dwa zakresy elementów dla równości lub równoważności w znaczeniu określonym przez predykatu dwuelementowego. |
|
Wyszukuje parę pozycji uporządkowanego zakresu pierwszego mniej lub równoważne do pozycji określonego elementu, a drugi większy niż element stanowiska, gdzie poczucie równoważności lub kolejności wykorzystane do ustalenia położenia w sekwencji może zostać określona przez predykatu dwuelementowego. |
|
Przypisuje tę samą wartość nowych każdy element w określonym zakresie. |
|
Przypisuje nową wartość określoną liczbę elementów w zakresie począwszy od określonego elementu. |
|
Lokalizuje pozycję pierwszego wystąpienia elementu w zakresie, który ma określoną wartość. |
|
Wyszukuje w ostatnim podciąg identyczne z określonej sekwencji lub odpowiada w znaczeniu określonym przez predykatu dwuelementowego. |
|
Wyszukiwanie pierwszego wystąpienia jednej z wartości z zakresu docelowego lub pierwszego wystąpienia kilku elementów, które są równoważne w znaczeniu określonym przez predykatu dwuelementowego określonego zestawu elementów. |
|
Lokalizuje pozycję pierwszego wystąpienia elementu w zakresie, który spełnia określony warunek. |
|
Zwraca pierwszy element wskazanego zakresu, który nie spełnia warunku. |
|
Obiekt określonej funkcji dotyczy każdego elementu w kolejności do przodu w zakresie i zwraca obiekt funkcji. |
|
Przypisuje wartości generowane przez obiekt funkcji do każdego elementu w zakresie. |
|
Przypisuje wartości generowane przez obiekt funkcji do określonej liczby elementów jest zakresu i zwraca do jednej pozycji w przeszłości ostatniego przypisaną wartość. |
|
Sprawdza, czy jeden sortowanym zakresie zawiera wszystkie elementy zawarte w sortowanym zakresie drugiego, gdzie kryterium zamawianie lub równoważności między elementami może zostać określona przez predykatu dwuelementowego. |
|
Łączy elementy z dwóch kolejnych zakresów sortowane w sortowanym zakresie pojedynczego, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Zwraca true , jeśli elementy w określonym zakresie formularza sterty. |
|
Zwraca true , jeśli określony zakres formularze sterty, aż do ostatniego elementu. |
|
Zwraca true Jeśli wszystkie elementy w danym zakresie, test true dla warunku pochodzą przed elementy test false. |
|
Zwraca true , jeśli elementy w określonym zakresie są posortowane. |
|
Zwraca true , jeśli elementy w określonym zakresie są posortowane. |
|
Wymiany dwóch wartości określonych przez parę Iteratory określony. |
|
Porównuje elementów między dwóch sekwencji do określenia, który jest mniejszą z dwóch. |
|
Znajduje pozycję pierwszego elementu w uporządkowanego zakresu ma wartość większa niż lub równa określonej wartości, gdy kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Tworzy checked_array_iterator , mogą być używane przez inne algorytmy. |
|
Konwertuje elementy z określonego zakresu sterty w pierwszym elementem jest największy i dla którego kryterium sortowania mogą być określone z predykatu dwuelementowego. |
|
Porównuje dwa obiekty i zwraca większej z dwóch, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Znajduje pierwsze wystąpienie elementu największą określonego zakresu, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Scala wszystkie elementy z dwóch zakresów źródłowych sortowane w zakres docelowy pojedynczy, sortowane, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Porównuje dwa obiekty i zwraca mniejszą z dwóch, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Znajduje pierwsze wystąpienie najmniejszy element w określonym zakresie, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Porównuje dwa parametry wejściowe i zwraca je jako parę w kolejności najmniej do najwyższego. |
|
Wykonuje pracę wykonaną przez min_element i max_element w jednym wywołaniu. |
|
Porównuje dwa zakresy elementów dla równości lub równoważne, w sensie określony przez predykatu dwuelementowego i lokalizuje pierwsze miejsce, w którym występuje różnica. |
|
Przenieś elementy związane z określonego zakresu. |
|
Przenosi elementy iteratora jednego do drugiego.Przeniesienie rozpoczyna się ostatni element w określonym zakresie i kończy się pierwszy element w tym zakresie. |
|
Zmienia kolejność elementów w zakresie, tak aby oryginalnej kolejności otrzymuje brzmienie lexicographically dalej permutacji większa, jeśli istnieje, gdzie poczucie dalej mogą być określone z predykatu dwuelementowego. |
|
Zwraca true gdy warunek nigdy nie jest obecny wśród elementów z podanego zakresu. |
|
Zakres elementów poprawnie lokalizowanie partycji nth element sekwencji w zakresie tak, aby wszystkie elementy przed nim są mniejsze lub równe jej i elementy, które po nim następują w sekwencji są większe niż lub równe jej. |
|
Rozmieszcza określonej liczby mniejsze elementy, w zakresie, w kolejności nondescending lub kryterium sortowania określony przez predykatu dwuelementowego. |
|
Kopiuje elementy z zakresu źródłowego do zakresu docelowego, gdy elementy źródła są uporządkowane według albo mniejsza niż lub innego określonego predykatu dwuelementowego. |
|
Klasyfikuje elementów w zakresie w dwa rozłączne zestawy z tych elementów spełniających te, które nie spełniają go poprzedzającym predykatu jednoelementowego. |
|
Kopiuje elementy, dla których warunek jest true do jednego miejsca przeznaczenia, oraz warunek jest false do innego.Elementy muszą pochodzić z określonego zakresu. |
|
Zwraca pierwszy element z podanego zakresu, który nie spełnia warunek.Elementy są sortowane tak, aby te, które spełniają warunek pochodzą przed tymi, które nie. |
|
Usuwa element największą z przodu sterty do dalej do ostatniej pozycji w zakresie i następnie formularze nowej sterty od pozostałych elementów. |
|
Zmienia kolejność elementów w zakresie, tak aby oryginalnej kolejności otrzymuje brzmienie lexicographically dalej permutacji większa, jeśli istnieje, gdzie poczucie dalej mogą być określone z predykatu dwuelementowego. |
|
Dodaje element, który znajduje się na końcu zakresu istniejących sterty, składające się z elementów poprzedniego w zakresie. |
|
Ponownie rozmieszcza sekwencji n elementów w zakresie do jednego z n!możliwych ustaleń wybranych losowo. |
|
Określona wartość z danego zakresu eliminuje bez zakłócania kolejności pozostałe elementy i zwracanie koniec nowy zakres wolny od określonej wartości. |
|
Kopie elementów ze źródła zakresu do zakresu docelowego, chyba że elementy o określonej wartości nie są kopiowane bez zakłócania zamówienia pozostałe elementy i powrocie do końca nowego zakresu docelowego. |
|
Kopie elementów z zakresu źródłowego do miejsca docelowego zakresu, chyba że niespełniających predykatu nie są kopiowane, bez naruszania zamówienia pozostałe elementy i powrocie do końca nowego zakresu docelowego. |
|
Eliminuje elementy, które spełniają predykat z danego zakresu bez zakłócania kolejności pozostałe elementy i zwracanie koniec nowy zakres wolny od określonej wartości. |
|
Sprawdza każdy element w zakresie i zastępuje go, jeśli go odpowiada określonej wartości. |
|
Analizuje każdy element w zakres źródłowy i zastępuje go, jeśli go odpowiada określonej wartości podczas kopiowania wynik do nowego zakresu docelowego. |
|
Analizuje każdy element w zakres źródłowy i zastępuje go podczas kopiowania do nowego zakresu docelowego wyniku spełnia określony predykatu. |
|
Analizuje każdy element w zakresie i zastępuje go spełnia określony predykatu. |
|
Odwraca kolejność elementów w zakresie. |
|
Odwraca kolejność elementów w zakresie źródła podczas kopiowania ich do zakresu docelowego |
|
Wymiany elementów w dwóch sąsiednich zakresów. |
|
Wymiany elementów w dwóch sąsiednich zakresów zakresu źródłowego i kopiuje wynik do zakresu docelowego. |
|
Wyszukiwanie pierwszego wystąpienia sekwencji w zakresie docelowym, której elementy są równe w danej sekwencji elementów lub której elementy są równoważne w znaczeniu określonym przez predykatu dwuelementowego do elementów w danej sekwencji. |
|
Wyszukuje pierwszy podciąg, w zakresie, że o określoną liczbę elementów o określonej wartości lub relacji z tą wartością podaną przez predykatu dwuelementowego. |
|
Wszystkie elementy, które należą do zakresu docelowego pojedynczy, sortowane, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego zakres jednego źródła posortowane, ale nie drugi zakres źródłowy sortowane, ważnym. |
|
Ważnym wszystkich elementów, które należą do obu zakresów źródłowych sortowane w zakresie przeznaczenia pojedynczy, sortowane, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Ważnym wszystkich elementów, które należą do jednego, ale nie obu zakresów źródłowych posortowane w zakresie przeznaczenia pojedynczy, sortowane, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Ważnym wszystkich elementów, które należą do co najmniej jeden z dwóch zakresów źródłowych sortowane do zakresu docelowego pojedynczy, sortowane, gdzie kryterium sortowania może być określona przez predykatu dwuelementowego. |
|
Rozmieszcza elementy w określonym zakresie do nondescending zamówienia lub kryterium sortowania określony przez predykatu dwuelementowego. |
|
Konwertuje sterty w sortowanym zakresie. |
|
Klasyfikuje elementów w zakresie w dwa rozłączne zestawy z tych elementów spełniających te, które nie spełniają, zachowując względne kolejność elementów równoważnych poprzedzających predykatu jednoelementowego. |
|
Rozmieszcza elementy w określonym zakresie do nondescending zamówienia lub kryterium sortowania określony przez predykatu dwuelementowego i zachowuje względna kolejność elementów równoważnych. |
|
Wymienia wartości elementów między dwoma typami obiektów, przypisywania zawartość pierwszego obiektu do drugiego obiektu i zawartość drugiego do pierwszego. |
|
Wymiany elementów jeden zakres z zakresu elementów innego równej wielkości. |
|
Dotyczy obiekt określonej funkcji, każdy element w zakres źródłowy lub para elementów z dwóch zakresów źródłowych i skopiowanie wartości zwracane funkcji obiekt do zakresu docelowego. |
|
Usuwa zduplikowane elementy, które przylegają do siebie w określonym zakresie. |
|
Kopie elementów z zakresu źródłowego do docelowego zakresu poza zduplikowane elementy, które przylegają do siebie. |
|
Znajduje pozycję pierwszego elementu w uporządkowanego zakresu ma wartość, która jest większa niż określona wartość, gdy kryterium sortowania może być określona przez predykatu dwuelementowego. |
Zobacz też
Informacje
Bezpieczeństwo wątków w standardowa biblioteka języka C++
Standardowa biblioteka szablonu