<algorithm>
Definuje standardní šablonu knihovny (STL) kontejneru šablony funkce, které provádějí algoritmy.
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
);
Poznámky
Algoritmy STL jsou obecné, protože pracují v různých datových struktur.Datové struktury, které pracují na zahrnout nejen tříd STL kontejneru jako vector a list, ale také program definovaných datových struktur a matice prvků, které splňují požadavky zejména algoritmus.Algoritmy STL dosáhnout neporuší tuto úroveň přístupu a křížení prvky kontejneru nepřímo prostřednictvím u iterátorů.
Algoritmy STL zpracovat iterační oblastí, které jsou obvykle určeny jejich počáteční nebo koncový pozic.Uvedené rozsahy musí být platný v tom smyslu, že musí být všechny ukazatele v oblasti dereferenceable a v rámci posloupnosti každou oblast musí být dostupná z první poslední pozice ve incrementation.
Algoritmy STL akcí podporovaných operací a funkcí členů každého kontejneru STL rozšířit a umožnit práci, například různé typy kontejneru objektů současně.Vyjádřit informace o účelu algoritmy byly použity dvě přípony.
Pokud příponu znamená, že je použit algoritmus s objekty funkce pracující na hodnoty prvků místo hodnoty prvky samotné.find_if Algoritmus hledá prvky, jejichž hodnoty splňují kritérium určený objekt funkce a find algoritmus hledá určitou hodnotu.
Přípona _copy označuje, že algoritmus nejen zpracovává hodnoty prvků, ale také zkopíruje změny hodnot do cílové oblasti.reverse Algoritmus obrátí pořadí prvků v určité oblasti a reverse_copy algoritmus výsledek také zkopíruje do cílové oblasti.
Algoritmy STL často dělí do skupin, které něco indikují o jejich účelu nebo požadavky.Patří úprava algoritmů, které změnit hodnotu v porovnání s nonmodifying algoritmy, které nejsou prvky.Mutating algoritmy změnit pořadí prvků, ale nikoli hodnoty jejich prvků.Odebrání algoritmy vyloučit prvky z rozsah nebo kopie oblast.Algoritmy řazení pořadí prvků v rozsahu různými způsoby a algoritmy seřazené oblasti jednat pouze algoritmy, jejíž prvky jsou seřazeny určitým způsobem.
STL číselné algoritmy, které jsou k dispozici pro zpracování číselných mají své vlastní záhlaví souboru <numeric>, a funkce objektů a adaptéry jsou definovány v záhlaví <functional> objekty funkce vracející booleovské hodnoty jsou známé jako predikáty.Výchozí binárního predikátu je srovnání operator<.Obecně prvky právě objednávané musí být menší než srovnatelné, takže uvedeny jakékoli dva prvky, může být určen buď jsou rovnocenné (v tom smyslu, že ani menší než ostatní) nebo že je menší než ostatní.Výsledkem objednání mezi nonequivalent prvky.
Funkce
Hledá dvě sousedící prvky, které jsou rovny nebo splňují zadanou podmínku. |
|
Vrátí true při podmínka je přítomen každý prvek v daném rozsahu. |
|
Vrátí true při podmínka je přítomna alespoň jednou v určeném rozsahu prvků. |
|
Ověřuje, zda je prvek v seřazené oblasti, která se rovná zadané hodnotě nebo je rovnocenné ve smyslu, určené binárního predikátu. |
|
Přiřadí hodnoty prvků ze zdrojové oblasti cílová oblast iterace zdroj posloupnost prvků a jejich nové pozice ve směru vpřed. |
|
Přiřadí hodnoty prvků ze zdrojové oblasti cílová oblast iterace zdroj posloupnost prvků a jejich nové pozice směrem dozadu. |
|
Kopírovat všechny prvky v dané oblasti, které test true pro zadanou podmínku. |
|
Kopíruje zadaný počet prvků. |
|
Vrátí počet prvků v rozsahu, jehož hodnoty odpovídají zadané hodnotě. |
|
Vrátí počet prvků v rozsahu, jehož hodnoty odpovídají zadané podmínky. |
|
Porovná dva rozsahy element po elementu pro rovné nebo rovnocennosti v smyslu určené binárního predikátu. |
|
Najde pár pozic v rozsahu objednané, první menší než nebo odpovídající Zadaný prvek a druhé poloze větší než umístění prvku, kde lze zadat představu o rovnocennosti nebo použity k určení polohy v pořadí řazení binárního predikátu. |
|
Každý prvek v dané oblasti přiřadí stejné novou hodnotu. |
|
Zadaný počet prvků v rozsahu od určitého přiřadí novou hodnotu. |
|
Pozice prvního výskytu elementu vyhledá v rozsahu, který obsahuje určitou hodnotu. |
|
Vyhledá v rozsahu pro poslední subsequence, které odpovídá zadanému pořadí nebo rovnocenné ve smyslu, určené binárního predikátu. |
|
Hledání pro první výskyt několika hodnot v cílové oblasti nebo pro první výskyt některé z několika prvků, které jsou rovnocenné ve smyslu, určené na zadanou sadu prvků binárního predikátu. |
|
Pozice prvního výskytu elementu vyhledá v rozsahu, který splňuje zadané podmínky. |
|
Vrátí první prvek zadaný rozsah, který nesplňuje podmínku. |
|
Zadanou funkci objektu platí pro každý prvek v pořadí vpřed v oblasti a vrací objekt funkce. |
|
Přiřadí hodnoty generované funkce objektu pro každý prvek v oblasti. |
|
Přiřadí hodnoty generované pomocí funkce objekt zadaný počet prvků je oblast a vrátí jednu pozici za poslední přiřazenou hodnotu. |
|
Testuje všechny prvky obsažené ve druhém seřazené oblasti, kde lze zadat kritéria řazení nebo rovnocennosti mezi prvky binárního predikátu obsahuje jeden seřazené oblasti. |
|
Kombinuje prvky ze dvou po sobě následujících oblastí seřazené do jediného seřazené oblasti, kde lze zadat kritéria řazení binárního predikátu. |
|
Vrátí true Pokud prvky v určeném rozsahu formuláře haldu. |
|
Vrátí true Pokud zadaná oblast tvoří haldu až do posledního prvku. |
|
Vrátí true Pokud všechny prvky v daném rozsahu, test true pro podmínku předcházet všechny prvky, které test false. |
|
Vrátí true Pokud jsou prvky v určeném rozsahu v seřazeném pořadí. |
|
Vrátí true Pokud jsou prvky v určeném rozsahu v seřazeném pořadí. |
|
Výměny dvou hodnot podle dvojici zadané u iterátorů. |
|
Porovná element po elementu mezi dvě sekvence zjistit, která je nižší z těchto dvou. |
|
Vyhledá první prvek pozice v objednané rozsah, který má hodnotu větší než nebo rovna zadané hodnotě, kde lze zadat kritéria řazení binárního predikátu. |
|
Vytvoří checked_array_iterator , lze použít jiné algoritmy. |
|
Převede prvky ze zadaného rozsahu haldy, což je největší první prvek a pro které kritérium třídění může být určena pomocí binárního predikátu. |
|
Porovná dva objekty a vrátí větší ze dvou, kde lze zadat kritéria řazení binárního predikátu. |
|
Nalezne první výskyt největší prvek v dané oblasti, kde lze zadat kritéria řazení binárního predikátu. |
|
Spojuje všechny prvky ze dvou oblastí seřazené zdroje do jednoho, seřazené cílové oblasti, kde lze zadat kritéria řazení binárního predikátu. |
|
Porovná dva objekty a vrátí menší z obou, kde lze zadat kritéria řazení binárního predikátu. |
|
Nalezne první výskyt nejmenší prvek v dané oblasti, kde lze zadat kritéria řazení binárního predikátu. |
|
Porovná dva vstupní parametry a vrátí jim jako dvojice v pořadí nejméně nejvyšší. |
|
Vykonává práci provedenou min_element a max_element v jednom volání. |
|
Porovná dva rozsahy element po elementu pro rovnost nebo ekvivalent v určeném binárního predikátu smyslu a vyhledá první místo, kde dochází k rozdílu. |
|
Přesunete prvky spojené s zadaný rozsah. |
|
Přesune prvky iterační jeden do druhého.Přesunutí začíná poslední prvek v dané oblasti a končí první prvek v dané oblasti. |
|
Seřadí prvky v rozsahu tak, aby původní pořadí lexicographically další větší Permutace nahrazuje, existuje, kde lze zadat smyslu další s binárního predikátu. |
|
Vrátí true při podmínku je nikdy mezi prvky v daném rozsahu. |
|
Rozsah prvky správně vyhledání oddílů nth element sekvence v rozsahu tak, aby všechny prvky před něj jsou menší než nebo je rovno a všechny prvky, které následují v pořadí jsou větší než nebo je rovno. |
|
Uspořádá zadaný počet menších prvků v rozsahu do nondescending pořadí nebo objednávání kritérium určený binárního predikátu. |
|
Zkopíruje prvky ze zdrojové oblasti do cílové oblasti, kde jsou zdroje prvky uspořádány podle buď menší než nebo jiného binárního predikátu. |
|
Klasifikuje prvky v rozsahu do dvou sad nesouvislý, s těmi prvky splňující, které je nesplňují předchozí unárního predikátu. |
|
Zkopíruje prvky, pro které je podmínkou true na jeden cíl a pro které podmínku false do jiného.Prvky musí pocházet ze zadaného rozsahu. |
|
Vrátí první prvek v daném rozsahu, který nesplňuje podmínku.Prvky jsou seřazeny tak, aby ty, které splňují podmínku přijít dříve než ty, které nemají. |
|
Největší prvek odebere z přední haldu další na poslední pozici v rozsahu a pak tvoří nové haldy z ostatních prvků. |
|
Seřadí prvky v rozsahu tak, aby původní pořadí lexicographically další větší Permutace nahrazuje, existuje, kde lze zadat smyslu další s binárního predikátu. |
|
Přidá prvek, který je na konci oblasti tak, aby stávající haldy sestávající z předchozí prvky v oblasti. |
|
Změní uspořádání sekvence n prvky v rozsahu do jednoho z n!náhodně vybrané možná opatření. |
|
Odstraní zadanou hodnotu z dané oblasti bez narušení pořadí zbývajících prvků a vrácení konec nové oblasti prosté zadanou hodnotu. |
|
Kopie prvky ze zdroje v rozsahu do cílové oblasti s výjimkou, že prvky zadanou hodnotu nejsou zkopírovány bez narušení pořadí zbývající prvky a vrácení konec nové cílové oblasti. |
|
Kopie prvky ze zdrojové oblasti s cílem rozsahu, s výjimkou splňující predikát nejsou zkopírovány bez narušení pořadí zbývající prvky a vrácení konec nové cílové oblasti. |
|
Eliminuje prvky, které splňují predikát z dané oblasti bez narušení pořadí zbývajících prvků a vrácení konec nové oblasti prosté zadanou hodnotu. |
|
Zkoumá každý prvek v oblasti a nahradí jej, pokud odpovídá zadané hodnotě. |
|
Zkoumá každý prvek ve zdrojové oblasti a nahradí jej Pokud při kopírování do nové cílové oblasti Výsledek odpovídá zadané hodnotě. |
|
Zkoumá každý prvek ve zdrojové oblasti a nahradí ji splňuje zadané predikát při kopírování výsledek do nové cílové oblasti. |
|
Zkoumá každý prvek v oblasti a nahradí ji splňuje zadané predikátu. |
|
Změní pořadí prvků v rozsahu. |
|
Při kopírování do cílové oblasti se obrátí pořadí prvků ve zdrojové oblasti |
|
Výměny prvky ve dvou sousedních oblastí. |
|
Prvky ve dvou sousedních oblastí ve zdrojové oblasti výměny a výsledek zkopíruje do cílové oblasti. |
|
Vyhledá první výskyt sledu v cílové oblasti, jehož prvky jsou rovná v daném pořadí prvků nebo jehož prvky jsou rovnocenné ve smyslu, určené binárního predikátu prvků v daném pořadí. |
|
Vyhledá první subsequence v rozsahu, o zadaný počet prvků s určitou hodnotu nebo ve vztahu k hodnotě podle binárního predikátu. |
|
Všechny prvky, které patří do jedné, seřazené cílové oblasti, kde lze zadat kritéria řazení binárního predikátu seřazené jedné zdrojové oblasti, ale nikoli druhá oblast řazení zdroj jednotek. |
|
Všechny prvky, které patří do jedné, seřazené cílové oblasti, kde lze zadat kritéria řazení binárního predikátu obou seřazené zdrojových oblastí jednotek. |
|
Všechny prvky, které patří do jedné, ale ne obojí, seřazené zdrojových oblastí do jednoho, seřazené cílové oblasti, kde lze zadat kritéria řazení binárního predikátu jednotek. |
|
Všechny prvky, které patří k nejméně jeden zdroj seřazené oblasti do jednoho, seřazené cílové oblasti, kde lze zadat kritéria řazení binárního predikátu jednotek. |
|
Uspořádá prvky v určeném rozsahu do nondescending pořadí nebo objednávání kritérium určený binárního predikátu. |
|
Převede haldu seřazené oblasti. |
|
Klasifikuje prvky v rozsahu do dvou sad nesouvislý, s těmi prvky splňující ty, které nesplňují, zachování relativní pořadí prvků ekvivalentní předcházejících unárního predikátu. |
|
Uspořádá prvky v určeném rozsahu do nondescending pořadí nebo objednávání kritérium určený binárního predikátu a zachová relativní pořadí prvků ekvivalentní. |
|
Hodnoty prvků mezi dvěma typy objektů, přiřazení obsah prvního objektu na druhý objekt a obsah druhého na první výměny. |
|
Prvky jedné oblasti s prvky jiného, rovná velikosti oblasti výměny. |
|
Použije určenou funkci objektu každý prvek ve zdrojové oblasti nebo dvojice prvků ze dvou zdrojových oblastí a vrácené hodnoty funkce objektu se zkopíruje do cílové oblasti. |
|
Odstraní duplicitní prvky, které vzájemně sousedí v dané oblasti. |
|
Kopie prvky ze zdrojové oblasti do cílové oblasti, s výjimkou duplicitní prvky, které jsou na sebe. |
|
Vyhledá první prvek pozice v objednané rozsah, který má hodnotu, která je větší než zadaná hodnota, kde lze zadat kritéria řazení binárního predikátu. |
Viz také
Referenční dokumentace
Bezpečnostní vlákno v Standardní knihovna C++