<algorithm>
Definiuje funkcje szablonu kontenera standardowej biblioteki szablonów (STL), które wykonują algorytmy.
(see relevant links below for specific algorithm syntax)
Uwagi
Algorytmy STL są ogólne, ponieważ mogą działać na różnych strukturach danych.Struktury danych, na których mogą one działać, obejmują nie tylko klasy kontenera STL, takie jak vector i list, ale również struktury danych zdefiniowane przez program i tablice elementów, które spełniają wymogi określonego algorytmu.Algorytmy STL osiągają ten poziom ogólności przez dostęp i przechodzenie przez elementy kontenera pośrednio poprzez iteratory.
Algorytmy STL przetwarzają zakresy iteratorów, które zazwyczaj są określane przez ich początkową lub końcową pozycję.Odnośne zakresy muszą być prawidłowe w tym sensie, że wszystkie wskaźniki w zakresach muszą być wyłuskiwalne, a w ramach sekwencji każdego zakresu, ostatnia pozycja musi być osiągalna od pierwszej przez inkrementację.
Algorytmy STL rozszerzają działania wspierane przez operacje i funkcje elementów członkowskich każdego kontenera STL i umożliwiają pracę, na przykład, z różnymi typami obiektów kontenera w tym samym czasie.Do przekazywania informacji o przeznaczeniu algorytmów były używane dwa przyrostki.
_if Sufiks wskazuje, że algorytm jest używany z obiektami funkcji działających wartości elementów, a nie wartości ze sobą elementy.Algorytm find_if szuka elementów, których wartości spełniają kryterium określone przez obiekt funkcji, a algorytm find wyszukuje określoną wartość.
Przyrostek _copy oznacza, że algorytm nie tylko manipuluje wartościami elementów, ale również kopiuje zmodyfikowane wartości do zakresu docelowego.Algorytm reverse odwraca kolejność elementów w zakresie, a algorytm reverse_copy kopiuje również wynik do zakresu docelowego.
Algorytmy STL często klasyfikuje się według grup, które w jakiś sposób wskazują ich cel lub wymagania.Należą do nich modyfikowania algorytmy Zmień wartość elementów w porównaniu bez modyfikowania algorytmów, które nie zawierają.Algorytmy mutujące zmieniają kolejność elementów, ale nie ich wartości.Algorytmy usuwające mogą wyeliminować elementy z zakresu lub kopii zakresu.Algorytmy sortujące zmieniają kolejność elementów w zakresie na różne sposoby, a algorytmy sortowanego zakresu działają jedynie na algorytmach, których elementy zostały posortowane w określony sposób.
Algorytmy liczbowego STL, używane do przetwarzania numeryczny ma swoje własne pliku nagłówka < liczbowego >, i funkcji obiekty i karty są definiowane w nagłówku < funkcjonalności > obiektów funkcji, które zwracają wartości logicznych są nazywane predykatów.Domyślny predykat binarny to operator< porównania.Ogólnie rzecz biorąc, szeregowane elementy muszą być mniej niż porównywalne, tak aby, mając dowolne dwa elementy, można było określić, czy są one równoważne (w sensie, żaden nie jest mniejszy niż ten drugi), czy że jeden jest mniejszy od drugiego.Skutkuje to ustaleniem kolejności elementów nierównoważnych.
Funkcje
Wyszukuje dwa sąsiadujące elementy, które są równe lub spełniają określony warunek. |
|
Zwraca true, kiedy warunek jest obecny dla każdego elementu z podanego zakresu. |
|
Zwraca true, kiedy warunek występuje co najmniej raz w określonym zakresie elementów. |
|
Testuje, czy w sortowanym zakresie istnieje element, który jest równy określonej wartości lub który jest odpowiednikiem w sensie określonym przez predykat binarny. |
|
Przypisuje wartości elementów z zakresu źródłowego do zakresu docelowego, iterując przez sekwencję źródłową elementów oraz przypisując im nowe pozycje w kierunku do przodu. |
|
Przypisuje wartości elementów z zakresu źródłowego do zakresu docelowego, iterując przez sekwencję źródłową elementów oraz przypisując im nowe pozycje w kierunku do tyłu. |
|
Kopiuj wszystkie elementy w danym zakresie, które testują true dla określonego warunku |
|
Kopiuje określoną liczbę elementów. |
|
Zwraca liczbę elementów w zakresie, których wartości pasują do określonej wartości. |
|
Zwraca liczbę elementów w zakresie, których wartości pasują do określonego warunku. |
|
Porównuje dwa zakresy element po elemencie, pod względem równości lub równoważności w sensie określonym przez predykat binarny. |
|
Wyszukuje parę pozycji w uporządkowanym zakresie, pierwszą mniejszą lub równoważną położeniu określonego elementu, a drugą większą niż pozycja elementu, gdzie sens równoważności lub szeregowania używany do ustanawiania pozycji w sekwencji może zostać określony przez predykat binarny. |
|
Przypisuje tę samą nową wartość każdemu elementowi w określonym zakresie. |
|
Przypisuje nową wartość określonej liczbie elementów z zakresu, począwszy od konkretnego elementu. |
|
Lokalizuje pozycję pierwszego wystąpienia elementu w zakresie, który ma określoną wartość. |
|
Wyszukuje w zakresie ostatnią podsekwencję, która jest identyczna z określoną sekwencją lub jest równoważna w sensie określonym przez predykat binarny. |
|
Wyszukuje pierwsze wystąpienie którejś z kilku wartości w zakresie docelowym lub pierwsze wystąpienie któregoś z kilku elementów, które są równoważne w sensie określonym przez predykat binarny dla określonego zestawu elementów. |
|
Lokalizuje pozycję pierwszego wystąpienia elementu w zakresie, który spełnia określony warunek. |
|
Zwraca pierwszy element we wskazanym zakresie, który nie spełnia warunku. |
|
Stosuje określony obiekt funkcji do 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 określonej liczbie elementów w zakresie i wraca do jednej pozycji poza ostatnią przypisaną wartością. |
|
Sprawdza, czy jeden posortowany zakres zawiera wszystkie elementy zawarte w drugim posortowanym zakresie, gdzie kryterium szeregowania lub równoważności między elementami może zostać określone przez predykat binarny. |
|
Łączy elementy z dwóch następujących po sobie posortowanych zakresów w pojedynczy posortowany zakres, gdzie kryterium szeregowania może być określone przez predykat binarny. |
|
Zwraca true, jeśli elementy w określonym zakresie tworzą stertę. |
|
Zwraca true, jeśli określony zakres tworzy stertę do ostatniego elementu. |
|
Zwraca true, jeśli wszystkie elementy w danym zakresie, które testują true dla warunku, występują przed którymkolwiek elementem, który testuje false. |
|
Określa, czy elementy znajdujące się w podanym zakresie tworzą prawidłowy permutacji. |
|
Zwraca true, jeśli elementy w określonym zakresie są w kolejności posortowanej. |
|
Zwraca true, jeśli elementy w określonym zakresie są w kolejności posortowanej. |
|
Wymienia dwie wartości, do których odnosi się para określonych iteratorów. |
|
Porównuje dwie sekwencje element po elemencie, aby określić, która z nich jest mniejsza. |
|
Znajduje pozycję pierwszego elementu w uporządkowanym zakresie, który ma wartość większą niż lub równoważną określonej wartości, gdzie kryterium szeregowania może być określone przez predykat binarny. |
|
Konwertuje elementy z określonego zakresu na stertę, w której pierwszy element jest największy i dla której kryterium sortowania może być określone przez predykat binarny. |
|
Porównuje dwa obiekty i zwraca większy z nich, gdzie kryterium sortowania może być określone przez predykat binarny. |
|
Znajduje pierwsze wystąpienie największego elementu w określonym zakresie, gdzie kryterium sortowania może być określone przez predykat binarny. |
|
Łączy wszystkie elementy z dwóch następujących po sobie posortowanych zakresów źródłowych w pojedynczy posortowany zakres docelowy, gdzie kryterium szeregowania może być określone przez predykat binarny. |
|
Porównuje dwa obiekty i zwraca mniejszy z nich, gdzie kryterium sortowania może być określone przez predykat binarny. |
|
Znajduje pierwsze wystąpienie najmniejszego elementu w określonym zakresie, gdzie kryterium sortowania może być określone przez predykat binarny. |
|
Porównuje dwa parametry wejściowe i zwraca je jako parę w kolejności od najmniejszego do największego. |
|
Wykonuje pracę wykonaną przez min_element i max_element w jednym wywołaniu. |
|
Porównuje dwa zakresy element po elemencie pod względem równości lub odpowiedniości w sensie określonym przez predykat binarny i lokalizuje pierwsze miejsce, w którym występuje różnica. |
|
Przenieś elementy związane z określonym zakresem. |
|
Przenosi elementy jednego iteratora do drugiego.Przeniesienie rozpoczyna się od ostatniego elementu w określonym zakresie, a kończy się na pierwszym elemencie w tym zakresie. |
|
Zmienia kolejność elementów w zakresie, tak że oryginalna kolejność jest zastąpiona przez leksykograficznie kolejną większą permutację, o ile takowa istnieje, gdzie sens „kolejna” może być określony przez predykat binarny. |
|
Zwraca true, kiedy warunek nigdy nie jest obecny wśród elementów z podanego zakresu. |
|
Dzieli zakres elementów, poprawnie lokalizując n-ty element sekwencji w zakresie, tak że wszystkie elementy przed nim są mniejsze od niego lub mu równe, a wszystkie elementy, które następują w sekwencji po nim, są większe od niego lub mu równe. |
|
Rozmieszcza określoną liczbę mniejszych elementów w zakresie w niemalejącej kolejności, lub według kryteriów sortowania określonych przez binarny predykat. |
|
Kopiuje elementy z zakresu źródłowego do zakresu docelowego, gdzie elementy źródłowe są uporządkowane według albo zasady mniejszy niż, albo innego określonego predykatu binarnego. |
|
Klasyfikuje elementy w zakresie na dwa rozłączne zestawy, z elementami spełniającymi predykat unarny poprzedzającymi te, które go nie spełniają. |
|
Kopiuje elementy, dla których warunek jest true dla jednego miejsca przeznaczenia, a false dla innego.Elementy muszą pochodzić z określonego zakresu. |
|
Zwraca pierwszy element w danym zakresie, który nie spełnia warunku.Elementy są sortowane, aby te, które spełniają warunek, występowały przed tymi, które go nie spełniają. |
|
Usuwa największy element z przodu sterty do przedostatniej pozycji w zakresie, a następnie tworzy nową stertę z pozostałych elementów. |
|
Zmienia kolejność elementów w zakresie, tak że oryginalna kolejność jest zastąpiona przez leksykograficznie kolejną większą permutację, o ile takowa istnieje, gdzie sens „kolejna” może być określony przez predykat binarny. |
|
Dodaje element znajdujący się na końcu zakresu do istniejącej sterty, która składa się z poprzednich elementów w zakresie. |
|
Rozmieszcza sekwencję N elementów w zakresie do jednego z N!możliwości ustalenia wybranych losowo. |
|
Eliminuje określoną wartość z danego zakresu bez zakłócania kolejności pozostałych elementów i zwracania końca nowego zakresu wolnego od określonej wartości. |
|
Kopiuje elementy z zakresu źródłowego do zakresu docelowego, z tym wyjątkiem, że elementy o określonej wartości nie są kopiowane, bez naruszania kolejności pozostałych elementów i zwracania końca nowego zakresu docelowego. |
|
Kopiuje elementy z zakresu źródłowego do zakresu docelowego, z tym wyjątkiem, że elementy spełniające predykat nie są kopiowane, bez naruszania kolejności pozostałych elementów i zwracania końca nowego zakresu docelowego. |
|
Eliminuje elementy, które spełniają predykat, z danego zakresu bez zakłócania kolejności pozostałych elementów i zwracania końca nowego zakresu wolnego od określonej wartości. |
|
Sprawdza każdy element w zakresie i zastępuje go, jeśli odpowiada określonej wartości. |
|
Sprawdza każdy element w zakresie źródłowym i zastępuje go, jeśli odpowiada określonej wartości, jednocześnie kopiując wynik do nowego zakresu docelowego. |
|
Sprawdza każdy element w zakresie źródłowym i zastępuje go, jeśli spełnia określony predykat, jednocześnie kopiując wynik do nowego zakresu docelowego. |
|
Sprawdza każdy element w zakresie i zastępuje go, jeśli spełnia określony predykat. |
|
Odwraca kolejność elementów w obrębie zakresu. |
|
Odwraca kolejność elementów w obrębie zakresu źródłowego, jednocześnie kopiując je do zakresu docelowego |
|
Wymienia elementy znajdujące się w dwóch sąsiednich zakresach. |
|
Wymienia elementy w dwóch sąsiednich zakresach w ramach zakresu źródłowego i kopiuje wynik do zakresu docelowego. |
|
Wyszukuje pierwsze wystąpienie sekwencji w zakresie docelowym, której elementy są równe tym w danej sekwencji elementów lub której elementy są równoważne w sensie określonym przez predykat binarny dla elementów w danej sekwencji. |
|
Wyszukuje pierwszą podsekwencję w zakresie, w której określona liczba elementów ma określoną wartość lub relację do tej wartości określoną przez predykat binarny. |
|
Łączy w sobie wszystkie elementy, które należą do jednego posortowanego zakresu źródłowego, ale nie do drugiego posortowanego zakresu źródłowego, w pojedynczy, posortowany zakres docelowy, gdzie kryterium sortowania może być określone przez predykat binarny. |
|
Łączy w sobie wszystkie elementy, które należą do obu posortowanych zakresów źródłowych w pojedynczy posortowany zakres docelowy, gdzie kryterium szeregowania może być określone przez predykat binarny. |
|
Łączy w sobie wszystkie elementy, które należą do jednego z, ale nie obu posortowanych zakresów źródłowych w pojedynczy posortowany zakres docelowy, gdzie kryterium szeregowania może być określone przez predykat binarny. |
|
Łączy w sobie wszystkie elementy, które należą do przynajmniej jednego z dwóch posortowanych zakresów źródłowych w pojedynczy posortowany zakres docelowy, gdzie kryterium szeregowania może być określone przez predykat binarny. |
|
Rozmieszcza elementy w określonym zakresie w niemalejącej kolejności lub według kryteriów sortowania określonych przez binarny predykat. |
|
Elementy przesuwa (Reorganizuje) dla określonego zakresu przy użyciu generator liczb losowych. |
|
Konwertuje stertę na sortowany zakres. |
|
Klasyfikuje elementy w zakresie na dwa rozłączne zestawy, z elementami spełniającymi predykat unarny poprzedzającymi te, które go nie spełniają, zachowując względną kolejność elementów równoważnych. |
|
Rozmieszcza elementy w określonym zakresie w niemalejącej kolejności lub według kryterium sortowania określonego przez binarny predykat i zachowuje względną kolejność elementów równoważnych. |
|
Wymienia wartości elementów między dwoma typami obiektów, przypisując zawartość pierwszego obiektu do drugiego obiektu, a zawartość drugiego do pierwszego. |
|
Zamienia elementy jednego zakresu przez elementy innego zakresu, zakresy mają równe wielkości. |
|
Stosuje określony obiekt funkcji dla każdego elementu w zakresie sortowania lub dla pary elementów z dwóch zakresów sortowania i kopiuje zwracane wartości obiektu funkcji do zakresu docelowego. |
|
Usuwa zduplikowane elementy, które sąsiadują ze sobą w określonym zakresie. |
|
Kopiuje elementy z zakresu źródłowego do zakresu docelowego z wyjątkiem zduplikowanych elementów, które ze sobą sąsiadują. |
|
Znajduje pozycję pierwszego elementu w uporządkowanym zakresie, który ma wartość większą niż określona wartość, gdzie kryterium sortowania może być określone przez predykat binarny. |
Zobacz też
Informacje
Bezpieczeństwo wątku w standardowej bibliotece C++
Standardowa biblioteka szablonów