Úvod do iterátorů
C++ 11

image_printTisk

Dva hlavní pilíře STL knihovny jsou její datové struktury a obecné algoritmy pro práci s nimi. Vzhledem k různosti datových struktur a obecnosti algoritmů potřebujeme nějaký spojovací článek, který je propojí, a k tomu jsou určeny právě iterátory, kterými se zabývá právě tato kapitola.

Iterátor je v podstatě objekt, který nám poskytuje určitá datová struktura za účelem umožnění přístupu k jejím prvkům. Primární funkcí iterátorů je odstínění algoritmů, ať již těch, které jsou součástí STL nebo těch, které si programátor napíše sám, od vnitřní reprezentace dané datové struktury a datového typu jejího prvku. Jejich funkce imituje, za pomocí přetížení operátorů, ukazatele, což je nízkoúrovňový prvek jazyka C++ pro práci s adresami proměnných a datových typů přímo v paměti počítače. Bližší informace o ukazatelích můžete nalézt ve článku Ukazatele.

Základní druhy funkcí, které iterátory poskytují, jsou následující:

  • Přístup k prvku datové struktury, která iterátor poskytla.
  • Posun na nové elementy datové struktury.

Tyto druhy funkcí se provádí za pomoci použití operátorů, které shrnuje následující tabulka. Je nutné chápat, že díky různým druhům datových struktur existuje také několik kategorií iterátorů, které nemusí podporovat úplně všechny operátory, které tabulka shrnuje. Hlavním důvodem je, že daná operace nejde na vnitřní reprezentaci dané datové struktury vůbec realizovat nebo nemá daná operace na konkrétní datové struktuře absolutně žádný smysl.

OperátoryFunkce operátorů
Operátor * a ->Poskytují přístup k prvku datové struktury. Operátor -> se používá na členské prvky daného uživatelsky definovaného typu.
Operátory it++ a it--Slouží k posunu na následující resp. předchozí prvek.
Operátory it += N a it -= NSlouží k posunu iterátoru o N prvků vpřed, resp. vzad.
Operátory == a !=Slouží ke zjištění rovnosti či nerovnosti iterátorů.
Operátory <, >, <= a >=Tyto operátory mají význam primárně u sekvenčních datových struktur a slouží k porovnání, který ze dvou iterátorů ukazuje na prvek s nižším indexem, resp. s s vyšším.
Operátor [ ]Slouží k vrácení prvku na daném indexu relativně vůči pozici iterátoru.

 

image_printTisk

Úvod do iterátorů
C++ 11
Ohodnoťte tento článek

Související články

  • Úvod do algoritmů STL Úvod Co jsou algoritmy STL - operace nad datovými strukturami STL Jak fungují? Vazba přes iterátory Není přímý přístup do datové struktury kvůli abstrakci od její […]
  • Příkaz “if” – větvení běhu programu V tomto článku si probereme první příkaz pro řízení běhu programu. Jedná se příkaz if, který slouží pro větvení běhu programu na základě vyhodnocení nějakého logického výrazu. Seznámíme se […]
  • Vstup a výstup pomocí textové konzole V tomto článku se velmi podrobně seznámíme se vstupem a výstupem na textovou konzoli. Začneme popisem jednoduchého vstupu a výstupu a pak dále navážeme, jak se pomocí speciálních příkazů, […]
  • Šablony funkcí I Tímto článkem si představíme nový pojem, a to je generické programování v C++. Jedná se o způsob programování, jehož základní znalost je nutná pro použití jedné z nejdůležitějších knihoven […]
  • Cykly v C++ V tomto článku si popíšeme tří základní typy cyklů v jazyce C++ a vše si ukážeme na jednoduchém příkladu součtu čísel z posloupnosti 1..10. V závěru kapitoly pak budou vysvětleny dva […]
  • Číselné datové typy podrobněji V této úvodní kapitole základů C++ jsme se zmínili pouze o dvou číselných datových typech, a to int a double. Spektrum číselných datových typů, a to jak pro celá čísla, tak i pro […]