<algorithm>
Definuje funkce šablony kontejneru standardní knihovny šablon (STL), které provádějí algoritmy.
(see relevant links below for specific algorithm syntax)
Poznámky
Algoritmy STL jsou obecné, protože je lze spustit na různých datových strukturách.Mezi datové struktury, na kterých lze tyto algoritmy spustit, patří nejen třídy kontejneru STL, například vector a list, ale také programem definované datové struktury a pole prvků, které splňují požadavky konkrétního algoritmu.Algoritmy STL této úrovně obecnosti dosahují přístupem k prvkům kontejneru a jejich přecházením nepřímo prostřednictvím iterátorů.
Algoritmy STL zpracovávají rozsahy iterátoru, které jsou obvykle určeny počáteční a koncovou pozicí.Tyto rozsahy musí být platné v tom smyslu, že na všechny ukazatele v rozsazích musí být možné nepřímo odkazovat a v rámci sekvencí každého rozsahu musí být poslední pozice dosažitelná z první pomocí přírůstku.
Algoritmy STL rozšiřují akce podporované operacemi a funkcemi členů každého kontejneru STL a umožňují například práci s různými typy objektů kontejnerů zároveň.K předání informací o účelu algoritmů byly použity dvě přípony.
_if Přípona označuje, že algoritmus použit s objekty funkce pracující na hodnotách elementy, a nikoli na hodnotách samotné prvky.Algoritmus find_if vyhledá prvky, jehož hodnoty splňují kritérium zadané objektem funkce, a algoritmus find vyhledá konkrétní hodnotu.
Přípona „_copy“ označuje, že algoritmus nejen manipuluje s hodnotami prvků, ale také kopíruje změněné hodnoty do cílového rozsahu.Algoritmus reverse obrátí pořadí prvků v rozsahu a algoritmus reverse_copy také zkopíruje výsledek do cílového rozsahu.
Algoritmy STL se často zařazují do skupin, které naznačují jejich účel nebo požadavky.Patří mezi ně úpravu algoritmy, které změňte hodnotu elementů ve srovnání s bez úpravy algoritmy, které nepodporují.Mutující algoritmy mění pořadí prvků, ale nikoli jejich hodnoty.Odebírající algoritmy mohou odstranit prvky z rozsahu nebo rozsah zkopírovat.Algoritmy řazení mění různými způsoby pořadí prvků v rozsahu a algoritmy seřazeného rozsahu pracují pouze s algoritmy, jejichž prvky byly seřazeny určitým způsobem.
STL číselná algoritmy, které jsou k dispozici pro číselné zpracování mají své vlastní hlavičky souboru < číselná >, a objekty funkce a adaptéry jsou definovány v hlavičce < funkční > jako predikáty jsou známé objekty funkce, které vracejí logické hodnoty.Výchozí binární predikát je operator< porovnání.Seřazované prvky musí být obecně menší než srovnatelné, což znamená, že když jsou uvedeny dva prvky, může být stanoveno, zda jsou ekvivalentní (v tom smyslu, že ani jeden není menší než ten druhý), nebo zda jeden je menší než druhý.Výsledkem je řazení mezi neekvivalentními prvky.
Funkce
Vyhledá dva sousedící prvky, které jsou buď rovny, nebo splňují zadanou podmínku. |
|
Vrátí true, pokud je u každého prvku v daném rozsahu přítomna podmínka. |
|
Vrátí true, pokud je alespoň jednou v zadaném rozsahu prvků přítomna podmínka. |
|
Ověřuje, zda v seřazeném rozsahu existuje prvek, který je roven zadané hodnotě nebo je jí ekvivalentní ve smyslu určeném binárním predikátem. |
|
Přiřadí hodnoty prvků ze zdrojového rozsahu do cílového rozsahu a provede iterace přes zdrojové sekvence prvků a přiřadí je novým pozicím směrem dopředu. |
|
Přiřadí hodnoty prvků ze zdrojového rozsahu do cílového rozsahu a provede iterace přes zdrojové sekvence prvků a přiřadí je novým pozicím směrem dozadu. |
|
Zkopíruje všechny prvky v dané oblasti, které testují true pro zadanou podmínku. |
|
Zkopíruje zadaný počet prvků. |
|
Vrátí počet prvků v rozsahu, jejichž hodnoty odpovídají zadané hodnotě. |
|
Vrátí počet prvků v rozsahu, jejichž hodnoty odpovídají zadané podmínce. |
|
Porovná dva rozsahy prvek podle prvku buď ke zjištění rovnosti, nebo ekvivalentnosti ve smyslu určeném binárním predikátem. |
|
Najde dvojici pozic v seřazeném rozsahu. První bude menší nebo rovna pozici zadaného prvku a druhá větší než pozice prvku, kde smysl ekvivalence nebo řazení použitý k určení pozic v sekvenci může být určen binárním predikátem. |
|
Každému prvku v zadaném rozsahu přiřadí stejnou novou hodnotu. |
|
Přiřadí novou hodnotu zadanému počtu prvků v rozsahu, který začíná konkrétním prvkem. |
|
Vyhledá pozici prvního výskytu prvku v rozsahu, který má zadanou hodnotu. |
|
Vyhledá v rozsahu poslední dílčí sekvenci, která je shodná se zadanou sekvencí nebo která je ekvivalentní ve smyslu určeném binárním predikátem. |
|
Vyhledá první výskyt jedné z několika hodnot v cílovém rozsahu nebo první výskyt jednoho z několika prvků, které jsou ekvivalentní ve smyslu určeném binárním predikátem zadané sadě prvků. |
|
Vyhledá pozici prvního výskytu prvku v rozsahu, který splňuje zadanou podmínku. |
|
Vrátí první prvek v zadaném rozsahu, který nesplňuje podmínku. |
|
Na každý prvek v pořadí dopředu v rozsahu použije zadaný objekt funkce a vrátí objekt funkce. |
|
Přiřadí hodnoty generované objektem funkce každému prvku v rozsahu. |
|
Přiřadí hodnoty generované objektem funkce zadanému počtu prvků v rozsahu a vrátí pozici prvku za poslední přiřazenou hodnotou. |
|
Ověřuje, zda jeden seřazený rozsah obsahuje všechny prvky obsažené ve druhém seřazeném rozsahu, kde kritérium pořadí nebo ekvivalence mezi prvky může být určeno binárním predikátem. |
|
Kombinuje prvky ze dvou po sobě následujících seřazených rozsahů do jednoho seřazeného rozsahu, kde kritérium pořadí může být určeno binárním predikátem. |
|
Vrátí true, pokud prvky v zadaném rozsahu tvoří haldu. |
|
Vrátí true, pokud zadaný rozsah tvoří haldu, která zahrnuje i poslední prvek. |
|
Vrátí true, pokud všechny prvky v zadaném rozsahu, které testují true pro podmínku, předcházejí prvkům, které testují false. |
|
Určuje, zda elementů v daném rozsahu tvořit platný permutaci. |
|
Vrátí true, pokud prvky v zadaném rozsahu jsou v seřazeném pořadí. |
|
Vrátí true, pokud prvky v zadaném rozsahu jsou v seřazeném pořadí. |
|
Vymění dvě hodnoty odkazované dvojicí zadaných iterátorů. |
|
Porovná prvek po prvku mezi dvěma sekvencemi k určení, která z nich je menší. |
|
Najde pozici prvního prvku v seřazeném rozsahu, jehož hodnota je větší nebo rovna zadané hodnotě, kde kritérium pořadí může být určeno primárním predikátem. |
|
Převede prvky ze zadaného rozsahu do haldy, ve které je první prvek největší a pro kterou může být kritérium řazení určeno binárním predikátem. |
|
Porovná dva objekty a vrátí větší z nich, kde kritérium pořadí může být určeno binárním predikátem. |
|
Vyhledá první výskyt největšího prvku v zadaném rozsahu, kde kritérium pořadí může být určeno binárním predikátem. |
|
Kombinuje všechny prvky ze dvou po sobě seřazených zdrojových rozsahů do jednoho seřazeného cílového rozsahu, kde kritérium pořadí může být určeno binárním predikátem. |
|
Porovná dva objekty a vrátí menší z nich, kde kritérium pořadí může být určeno binárním predikátem. |
|
Vyhledá první výskyt nejmenšího prvku v zadaném rozsahu, kde kritérium pořadí může být určeno binárním predikátem. |
|
Porovná dva vstupní parametry a vrátí je jako dvojici v pořadí od nejmenšího po největší. |
|
Provádí práci vykonávanou min_element a max_element v jednom volání. |
|
Porovná dva rozsahy prvek po prvku buď ke zjištění rovnosti, nebo ekvivalence ve smyslu určeném binárním predikátem a vyhledá první pozici, kde existuje rozdíl. |
|
Přesune prvky přidružené k určenému rozsahu. |
|
Přesune prvky jednoho iterátoru do druhého.Pohyb začíná posledním prvkem v daném rozsahu a končí prvním prvkem v daném rozsahu. |
|
Znovu uspořádá prvky v rozsahu tak, aby původní pořadí bylo nahrazeno lexikograficky následující větší permutací, pokud existuje, kde význam následujícího může být určen binárním predikátem. |
|
Vrátí true, pokud u prvků v daném rozsahu není nikdy přítomna podmínka. |
|
Rozdělí rozsah prvků a správně určí pozici n-tého prvku sekvence v rozsahu tak, aby všechny prvky před tímto prvkem byly menší nebo rovny a všechny prvky v sekvenci za tímto prvkem byly větší nebo rovny. |
|
Uspořádá zadaný počet menších prvků v rozsahu do nesestupného pořadí nebo podle setřiďovacího kritéria určeného binárním predikátem. |
|
Zkopíruje prvky ze zdrojového rozsahu do cílového rozsahu, kde zdrojové prvky jsou seřazeny buď podle binárního predikátu „menší než“ nebo jiného určeného binárního predikátu. |
|
Rozdělí prvky v rozsahu do dvou oddělených sad. Prvky, které splňují unární predikát, jsou umístěny před těmi, které jej nesplňují. |
|
Zkopíruje prvky, pro které je podmínka true, do jednoho cíle a prvky, pro které je podmínka false, do druhého cíle.Prvky musí pocházet ze zadaného rozsahu. |
|
Vrátí první prvek v zadaném rozsahu, který nesplňuje podmínku.Prvky jsou seřazeny tak, aby ty, které splňují podmínku, předcházely těm, které ji nesplňují. |
|
Odstraní největší prvek z přední části haldy až do předposlední pozice v rozsahu a ze zbývajících prvků vytvoří novou haldu. |
|
Znovu uspořádá prvky v rozsahu tak, aby původní pořadí bylo nahrazeno lexikograficky následující větší permutací, pokud existuje, kde význam následujícího může být určen binárním predikátem. |
|
Přidá prvek, který je na konci rozsahu, do stávající haldy, která zahrnuje předchozí prvky daného rozsahu. |
|
Uspořádá sekvenci N prvky v rozsahu do jednoho z N!možná opatření náhodně vybrané. |
|
Odstraní zadanou hodnotu z daného rozsahu bez narušení pořadí zbývajících prvků a vrácení konce nového rozsahu, který neobsahuje zadanou hodnotu. |
|
Zkopíruje prvky ze zdrojového rozsahu do cílového rozsahu. Prvky zadané hodnoty zkopírovány nejsou. Nenaruší pořadí zbývajících prvků a nevrátí konec nového cílového rozsahu. |
|
Zkopíruje prvky ze zdrojového rozsahu do cílového rozsahu. Prvky splňující predikát zkopírovány nejsou. Nenaruší pořadí zbývajících prvků a nevrátí konec nového cílového rozsahu. |
|
Odstraní prvky, které splňují predikát, z daného rozsahu bez narušení pořadí zbývajících prvků a vrácení konce nového rozsahu, který neobsahuje zadanou hodnotu. |
|
Zkontroluje každý prvek v rozsahu a nahradí jej, pokud odpovídá zadané hodnotě. |
|
Zkontroluje každý prvek ve zdrojovém rozsahu a nahradí jej, pokud při kopírování výsledku do nového cílového rozsahu odpovídá zadané hodnotě. |
|
Zkontroluje každý prvek ve zdrojovém rozsahu a nahradí jej, pokud při kopírování výsledku do nového cílového rozsahu splňuje zadaný predikát. |
|
Zkontroluje každý prvek v rozsahu a nahradí jej, pokud splňuje zadaný predikát. |
|
Obrátí pořadí prvků v rozsahu. |
|
Obrátí pořadí prvků ve zdrojovém rozsahu při kopírování do cílového rozsahu. |
|
Vymění prvky ve dvou sousedních rozsazích. |
|
Vymění prvky ve dvou sousedních rozsazích v rámci zdrojového rozsahu a zkopíruje výsledek do cílového rozsahu. |
|
Vyhledá první výskyt sekvence v cílovém rozsahu, jejíž prvky jsou rovné prvkům v dané sekvenci prvků nebo jejíž prvky jsou ekvivalentní ve smyslu určeném binárním predikátem prvkům v dané sekvenci. |
|
Vyhledá první dílčí sekvenci v rozsahu zadaného počtu prvků s konkrétní hodnotou nebo vztahem k dané hodnotě podle binárního predikátu. |
|
Sjednotí všechny prvky, které patří do jednoho seřazeného zdrojového rozsahu, ale nikoli do druhého seřazeného zdrojového rozsahu, do jednoho seřazeného cílového rozsahu, kde kritérium pořadí může být určeno binárním predikátem. |
|
Sjednotí všechny prvky, které náleží do obou seřazených zdrojových rozsahů, do jednoho seřazeného cílového rozsahu, kde kritérium pořadí může být určeno binárním predikátem. |
|
Sjednotí všechny prvky, které náleží do jednoho, ale nikoli obou seřazených zdrojových rozsahů, do jednoho seřazeného cílového rozsahu, kde kritérium pořadí může být určeno binárním predikátem. |
|
Sjednotí všechny prvky, které náleží alespoň do jednoho ze dvou seřazených zdrojových rozsahů, do jednoho seřazeného cílového rozsahu, kde kritérium pořadí může být určeno binárním predikátem. |
|
Uspořádá prvky v zadaném rozsahu do nesestupného pořadí nebo podle setřiďovacího kritéria určeného binárním predikátem. |
|
Elementy podle okolí posouvá (změní uspořádání) pro danou oblast pomocí generátor náhodné číslo. |
|
Převede haldu na seřazený rozsah. |
|
Rozdělí prvky v rozsahu do dvou oddělených sad. Prvky, které splňují unární predikát, jsou umístěny před těmi, které jej nesplňují. Relativní pořadí ekvivalentních prvků je zachováno. |
|
Uspořádá prvky v zadaném rozsahu do nesestupného pořadí nebo podle setřiďovacího kritéria určeného binárním predikátem a zachová relativní pořadí ekvivalentních prvků. |
|
Vymění hodnoty prvků mezi dvěma typy objektů, obsah prvního objektu přiřadí ke druhému objektu a obsah druhého k prvnímu objektu. |
|
Vymění prvky z jednoho rozsahu za prvky druhého rozsahu o stejné velikosti. |
|
Aplikuje zadaný objekt funkce na každý prvek ve zdrojovém rozsahu nebo na dvojici prvků ze dvou zdrojových rozsahů a zkopíruje vrácené hodnoty objektu funkce do cílového rozsahu. |
|
Odstraní duplicitní prvky, které v zadaném rozsahu sousedí. |
|
Zkopíruje prvky ze zdrojového rozsahu do cílového rozsahu s výjimkou sousedících duplicitních prvků. |
|
Najde pozici prvního prvku v seřazeném rozsahu, který má hodnotu větší než zadaná hodnota, kde kritérium pořadí může být určeno binárním predikátem. |
Viz také
Referenční dokumentace
Bezpečný přístup z více vláken ve standardní knihovně C++