Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Definuje předdefinované iterátory a iterátory datových proudů, primitivy iterátoru a podpůrné šablony.
Požadavky
Záhlaví: <iterator>
Obor názvů: std
Poznámky
Iterátory jsou generalizace ukazatelů, které umožňují programu C++ pracovat s různými datovými strukturami jednotným způsobem. Namísto provozu na konkrétních datových typech pracují algoritmy s rozsahem hodnot určeným typem iterátoru. Algoritmy můžou pracovat s libovolnou datovou strukturou, která splňuje požadavky iterátoru.
V jazyce C++20 je šest kategorií iterátorů. Iterátory jsou uspořádány v hierarchii schopností. Jejich možnosti jsou určeny koncepty C++20. Popis různých iterátorů a jejich možností najdete v tématu Koncepty iterátoru.
Visual Studio přidalo rozšíření iterátorů standardní knihovny C++, které podporují ladění pro kontrolované a nezaškrtnuté iterátory. Další informace naleznete v tématu Bezpečné knihovny: Standardní knihovna jazyka C++.
Členové
Funkce
| Název | Popis |
|---|---|
advance |
Zvýší iterátor o zadaný počet pozic. |
back_inserter |
Vytvoří iterátor, který může vložit prvky do zadní části zadaného kontejneru. |
begin |
Načte iterátor na první prvek v zadaném kontejneru. |
cbegin |
Načte iterátor jen pro čtení do prvního prvku v zadaném kontejneru. |
cend |
Načte iterátor jen pro čtení do elementu, který následuje za posledním prvkem v zadaném kontejneru. |
crbegin |
Na začátek zadaného kontejneru získejte iterátor jen pro čtení. |
crend |
Získejte sentinel na konci toho, co crbegin() se vrátí. |
data |
Získejte ukazatel na první prvek v zadaném kontejneru. |
distance |
Určuje počet kroků mezi polohami řešenými dvěma iterátory. |
end |
Načte iterátor na prvek, který následuje po posledním prvku v zadaném kontejneru. |
empty |
Otestujte, jestli je zadaný kontejner prázdný. |
front_inserter |
Vytvoří iterátor, který může vložit prvky do přední části zadaného kontejneru. |
inserter |
Adaptér iterátoru, který přidá nový prvek do kontejneru v určeném okamžiku vložení. |
make_checked_array_iterator |
checked_array_iterator Vytvoří, kterou můžou používat jiné algoritmy. Poznámka: Tato funkce je rozšířením Standardní knihovny jazyka C++ od Microsoftu. Kód implementovaný pomocí této funkce není přenositelný do prostředí sestavení C++ Standard, která toto rozšíření Microsoftu nepodporují. |
make_move_iterator |
Vrátí iterátor přesunu obsahující zadaný iterátor jako svůj uložené základní iterátor. |
make_unchecked_array_iterator |
Vytvoří, unchecked_array_iterator kterou můžou používat jiné algoritmy. Poznámka: Tato funkce je rozšířením Standardní knihovny jazyka C++ od Microsoftu. Kód implementovaný pomocí této funkce není přenositelný do prostředí sestavení C++ Standard, která toto rozšíření Microsoftu nepodporují. |
next |
Iteruje zadaný počet iterací a vrátí novou pozici iterace. |
prev |
Iteruje v opačném pořadí zadaný počet iterací a vrátí novou pozici iterace. |
rbegin |
Získejte reverzní iterátor na začátek zadaného kontejneru. |
rend |
Získejte reverzní iterátor do sentinelu na konci zadaného kontejneru. |
size |
Získá počet prvků. |
Operátory
| Název | Popis |
|---|---|
operator!= |
Testuje, zda objekt iterátoru na levé straně operátoru není roven objektu iterátoru na pravé straně. |
operator== |
Testuje, zda je objekt iterátoru na levé straně operátoru roven objektu iterátoru na pravé straně. |
operator< |
Testuje, zda je objekt iterátoru na levé straně operátoru menší než objekt iterátoru na pravé straně. |
operator<= |
Testuje, zda je objekt iterátoru na levé straně operátoru menší než nebo roven objektu iterátoru na pravé straně. |
operator> |
Testuje, zda je objekt iterátoru na levé straně operátoru větší než objekt iterátoru na pravé straně. |
operator>= |
Testuje, zda je objekt iterátoru na levé straně operátoru větší než nebo roven objektu iterátoru na pravé straně. |
operator+ |
Přidá posun iterátoru a vrátí nové reverse_iterator adresování vloženého prvku na nové pozici posunu. |
operator- |
Odečte jeden iterátor od druhého a vrátí rozdíl. |
Třídy
| Název | Popis |
|---|---|
back_insert_iterator |
Šablona třídy popisuje výstupní objekt iterátoru. Vloží prvky do kontejneru typu Container, ke kterému přistupuje prostřednictvím chráněného pointer objektu, který ukládá označovaný jako kontejner. |
bidirectional_iterator_tag |
Třída, která poskytuje návratový typ pro iterator_category funkci, která představuje obousměrný iterátor. |
checked_array_iterator |
Třída, která umožňuje přístup k poli pomocí náhodného přístupu, kontrolovaného iterátoru. Poznámka: Tato třída je rozšířením microsoftu standardní knihovny C++. Kód implementovaný pomocí této funkce není přenositelný do prostředí sestavení C++ Standard, která toto rozšíření Microsoftu nepodporují. |
forward_iterator_tag |
Třída, která poskytuje návratový typ pro iterator_category funkci, která představuje předávací iterátor. |
front_insert_iterator |
Šablona třídy popisuje výstupní objekt iterátoru. Vloží prvky do kontejneru typu Container, ke kterému přistupuje prostřednictvím chráněného pointer objektu, který ukládá označovaný jako kontejner. |
input_iterator_tag |
Třída, která poskytuje návratový typ pro iterator_category funkci, která představuje vstupní iterátor. |
insert_iterator |
Šablona třídy popisuje výstupní objekt iterátoru. Vloží prvky do kontejneru typu Container, ke kterému přistupuje prostřednictvím chráněného pointer objektu, který ukládá označovaný jako kontejner. Ukládá také chráněný iterator objekt třídy Container::iterator, nazývané iter. |
istream_iterator |
Šablona třídy 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á, ukazatele typu na basic_istream<Elem, Tr>. |
istreambuf_iterator |
Šablona třídy popisuje vstupní objekt iterátoru. Vloží prvky třídy Elem do vyrovnávací paměti výstupního datového proudu, ke které přistupuje prostřednictvím objektu, který ukládá, typu pointer do basic_streambuf<Elem, Tr>. |
iterator |
Šablona třídy se používá jako základní typ pro všechny iterátory. |
iterator_traits |
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. |
move_iterator |
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 tak, aby value_type&&: byl .rvalue reference |
ostream_iterator |
Šablona třídy popisuje výstupní objekt iterátoru. Vloží objekty třídy Type do výstupního datového proudu, který přistupuje prostřednictvím objektu, který ukládá, typu pointer do basic_ostream<Elem, Tr>. |
ostreambuf_iterator |
Šablona třídy popisuje výstupní objekt iterátoru. Vloží prvky třídy Elem do vyrovnávací paměti výstupního datového proudu, ke které přistupuje prostřednictvím objektu, který ukládá, ukazatele typu na basic_streambuf<Elem, Tr>. |
output_iterator_tag |
Třída, která poskytuje návratový typ pro iterator_category funkci, která představuje výstupní iterátor. |
random_access_iterator_tag |
Třída, která poskytuje návratový typ pro iterator_category funkci, která představuje iterátor náhodného přístupu. |
reverse_iterator |
Šablona třídy popisuje objekt, který se chová jako iterátor s náhodným přístupem, pouze obráceně. |
unchecked_array_iterator |
Třída, která umožňuje přístup k poli pomocí náhodného přístupu, nekontrolovaného iterátoru. Poznámka: Tato třída je rozšířením microsoftu standardní knihovny C++. Kód implementovaný pomocí této funkce není přenositelný do prostředí sestavení C++ Standard, která toto rozšíření Microsoftu nepodporují. |
Koncepty
Následující koncepty jsou definovány v std oboru názvů. Vztahují se na iterátory a také souvisí s kategoriemi iterátoru pro rozsahy popsané v <ranges> konceptech.
| Koncept iterátoru | Popis |
|---|---|
bidirectional_iteratorC++20 |
Určuje iterátor, který může číst a zapisovat dopředu i dozadu. |
contiguous_iteratorC++20 |
Určuje iterátor, jehož prvky jsou sekvenční v paměti, stejné velikosti a lze k němu přistupovat pomocí aritmetické metody ukazatele. |
forward_iteratorC++20 |
Určuje iterátor, který může číst (a případně zapisovat) vícekrát. |
input_iteratorC++20 |
Určuje iterátor, ze kterého můžete alespoň jednou číst. |
input_or_output_iteratorC++20 |
Základem taxonomie konceptu iterátoru. |
output_iterator |
Určuje iterátor, do kterého můžete zapisovat. |
random_access_iteratorC++20 |
Určuje iterátor, který můžete číst a zapisovat podle indexu. |
sentinel_forC++20 |
Určuje sentinel pro typ iterátoru. |
sized_sentinel_forC++20 |
Určuje, že iterátor a jeho sentinel je možné odečíst (pomocí -) zjistit jejich rozdíl v konstantním čase. |
Viz také
Referenční informace k souborům hlaviček
Bezpečný přístup z více vláken ve standardní knihovně C++
Standardní knihovna C++ – referenční dokumentace