<iterator>
Definuje základní iterátor, předdefinované iterátory a iterátory proudu, jakož i několik podpůrných šablon.Předdefinované iterátory zahrnují vkládací a reverzní adaptéry.Existují tři třídy adapterů iterátoru vložení: přední, zadní a obecný.Poskytují sémantiku vkládání, nikoliv sémantikou přepsání, kterou poskytují iterátory členské funkce kontejneru.
#include <iterator>
Poznámky
Iterátory jsou generalizacemi ukazatelů – abstrahují z jejich požadavků způsobem, který umožňuje programu C++ pracovat s různými datovými strukturami jednotným způsobem.Iterátory fungují jako prostředníci mezi kontejnery a obecnými algoritmy.Místo práce na konkrétních datových typech jsou algoritmy definovány, aby pracovaly na rozsahu určeném typem iterátoru.Datová struktura, která splňuje požadavky iterace, může pak být provozována algoritmem.Existuje pět typů nebo kategorií iterátoru, každý s vlastní sadou požadavků a výsledné funkčnosti:
Výstup: pohybující se vpřed může ukládat, ale ne načítat hodnoty poskytnuté ostream a inserter.
Vstup: pohybující se vpřed může načíst, ale ne ukládat hodnoty poskytnuté istream.
Předat dál: přesunutí vpřed, může ukládat a načítat hodnoty.
Obousměrné: přesun vpřed a zpět může ukládat a načítat hodnoty podle seznamu, sady, multisady, mapy a multimapy.
Náhodný přístup: přístup k prvkům v libovolném pořadí, může ukládat a načítat hodnoty, podle vektoru, deque, řetězce a pole.
Iterátory, které mají větší požadavky, a tedy silnější přístup k prvkům mohou být použity namísto iterátorů s menším počtem požadavků.Pokud je volán dopředný iterátor, může být místo toho použit iterátor náhodného přístupu.
Do sady Visual Studio byla přidána rozšíření iterátorů standardní knihovny C++ za účelem podpory pro řady situací v režimu ladění pro kontrolované a nekontrolované iterátory.Další informace naleznete v tématu Bezpečné knihovny: standardní knihovna C++.
Funkce
Zvýší iterátor o zadaný počet pozic. |
|
Vytvoří iterátor, který může vložit prvky do zadní části zadaného kontejneru. |
|
Načte iterátor na první prvek v zadaném kontejneru. |
|
Načte konstantní iterátor na první prvek v zadaném kontejneru. |
|
Načte konstantní iterátor na prvek, který následuje po posledním prvku v zadaném kontejneru. |
|
Určuje počet kroků mezi polohami řešenými dvěma iterátory. |
|
Načte iterátor na prvek, který následuje po posledním prvku v zadaném kontejneru. |
|
Vytvoří iterátor, který může vložit prvky do přední části zadaného kontejneru. |
|
Adaptér iterátoru, který přidá nový prvek do kontejneru v určeném okamžiku vložení. |
|
Vytvoří checked_array_iterator, který mohou používat ostatní algoritmy.
|
|
Vrátí iterátor přesunu obsahující zadaný iterátor jako svůj uložené základní iterátor. |
|
Vytvoří unchecked_array_iterator, který mohou používat ostatní algoritmy.
|
|
Iteruje zadaný počet iterací a vrátí novou pozici iterace. |
|
Iteruje v opačném pořadí zadaný počet iterací a vrátí novou pozici iterace. |
Operátory
Testuje, zda je objekt iterátoru na levé straně operátoru není roven objektu iterátoru na pravé straně. |
|
Testuje, zda je objekt iterátoru na levé straně operátoru roven objektu iterátoru na pravé straně. |
|
Testuje, zda je objekt iterátoru na levé straně operátoru menší než objekt iterátoru na pravé straně. |
|
Testuje, zda je objekt iterátoru na levé straně operátoru menší než nebo roven objektu iterátoru na pravé straně. |
|
Testuje, zda je objekt iterátoru na levé straně operátoru větší než objekt iterátoru na pravé straně. |
|
Testuje, zda je objekt iterátoru na levé straně operátoru větší než nebo roven objektu iterátoru na pravé straně. |
|
Přidá posun do iterátoru a vrátí nový reverse_iterator adresující vložený prvek na nové pozici posunu. |
|
Odečte jeden iterátor od druhého a vrátí rozdíl. |
Třídy
Třída šablony popisuje výstupní objekt iterátoru.Vloží prvky do kontejneru typu Container, ke kterému přistupuje přes chráněný objekt pointer, ve kterém je uložen volaný kontejner. |
|
Třída, která poskytuje návratový typ pro funkci iterator_category, která představuje obousměrný iterátor. |
|
Třída, která umožňuje přístup k poli pomocí náhodného přístupu, kontrolovaného iterátoru.
|
|
Třída, která poskytuje návratový typ pro funkci iterator_category, která představuje iterátor předání. |
|
Třída šablony popisuje výstupní objekt iterátoru.Vloží prvky do kontejneru typu Container, ke kterému přistupuje přes chráněný objekt pointer, ve kterém je uložen volaný kontejner. |
|
Třída, která poskytuje návratový typ pro funkci iterator_category, která představuje iterátor vstupu. |
|
Třída šablony popisuje výstupní objekt iterátoru.Vloží prvky do kontejneru typu Container, ke kterému přistupuje přes chráněný objekt pointer, ve kterém je uložen volaný kontejner.Také ukládá chráněný objekt iterator třídy Container::iterator nazvaný iter. |
|
Třída šablony popisuje vstupní objekt iterátoru.Extrahuje objekty třídy Ty ze vstupního datového proudu, ke kterému přistupuje prostřednictvím objektu, který ukládá, typu ukazatele do basic_istream<Elem, Tr>. |
|
Třída šablony popisuje vstupní objekt iterátoru.Vkládá prvky třídy Elem do výstupní mezipaměti datového proudu, ke kterému přistupuje prostřednictvím objektu, který ukládá, typu pointer do basic_streambuf<Elem, Tr>. |
|
Třída šablony slouží jako základní typ pro všechny iterátory. |
|
Třída pomocné šablony poskytující kritické typy, které jsou spojeny s různými typy iterátoru, aby na ně bylo možné odkazovat stejným způsobem. |
|
Objekt move_iterator ukládá iterátor náhodného přístupu typu RandomIterator.Chová se jako iterátor s náhodným přístupem, pokud není dereferencován.Výsledek operator* je implicitně přetypován na value_type&&:, aby vytvořil rvalue reference. |
|
Třída šablony popisuje výstupní objekt iterátoru.Vkládá objekty třídy Type do výstupní mezipaměti datového proudu, ke kterému přistupuje prostřednictvím objektu, který ukládá, typu pointer do basic_ostream<Elem, Tr>. |
|
Třída šablony popisuje výstupní objekt iterátoru.Vkládá prvky třídy Elem do výstupní mezipaměti datového proudu, ke kterému přistupuje prostřednictvím objektu, který ukládá, typu pointer do basic_streambuf<Elem, Tr>. |
|
Třída, která poskytuje návratový typ pro funkci iterator_category, která představuje iterátor výstupu. |
|
Třída, která poskytuje návratový typ pro funkci iterator_category, která představuje iterátor náhodného přístupu. |
|
Třída šablony popisuje objekt, který se chová jako iterátor s náhodným přístupem, jen obráceně. |
|
Třída, která umožňuje přístup k poli pomocí náhodného přístupu, nekontrolovaného iterátoru.
|
Viz také
Referenční dokumentace
Bezpečný přístup z více vláken ve standardní knihovně C++