Iterátor – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Iterátor – C / C++ – Fórum – Programujte.comIterátor – C / C++ – Fórum – Programujte.com

 

Martin Heller
~ Anonymní uživatel
4 příspěvky
12. 6. 2012   #1
-
0
-

Zdravim, potřebuji radu. Učím se z tutoriálu na builderu iterátory. Nějak mi ale pořád nedochází, k čemu můžou být dobré. 

Iterátory jsou určeny pouze k tomu, abych pomocí nich mohl procházet kontejnery a používat pomocí jejich iterátoru funkce ze souboru <algorithm> plus další? Je to tedy pouze zobecnění typu což znamená, že je mohu používat jak pro typ int tak například pro třídu "mojetrida"?

Byl bych vděčný za jakoukoli pomoc. Případně kdyby jste věděli o nějakém srozumitelném tutoriálu.

Případně na co používáte iterátory vy?

Nahlásit jako SPAM
IP: 88.83.169.–
yaqwsx+9
Posthunter
12. 6. 2012   #2
-
+3
-
Zajímavé

Ano, iterátor slouží pro procházení kontejneru - je to takový "chytrý kontejnerový pointer". Iterátorem pro pole je klasické pole - když jej inkrementuješ, tak se dostanejš na další prvek. Když jej dekrementuješ, dostaneš se na předchozí prvek. Klasický pointer můžeš použít pro vector - ale už jej nepoužiješ např. pro list, což je spojový seznam. Proto se zavádí iterátory - např. list<T>::iterator zaobaluje celou režiji zjišťování dalšího prvku v kontejneru a tobě ho stačí pouze inkrementovat.

Nahlásit jako SPAM
IP: 85.160.34.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Martin Heller
~ Anonymní uživatel
4 příspěvky
12. 6. 2012   #3
-
0
-

#2 yaqwsx
Díky cením si odpovědi

Nahlásit jako SPAM
IP: 88.83.169.–
yaqwsx+9
Posthunter
12. 6. 2012   #4
-
+1
-
Zajímavé

EDIT: Teď jsem si všiml přepisu - iterátorem pro pole je pointer. Nevím, co se mi honilo hlavou, když jsem to psal...

Nahlásit jako SPAM
IP: 85.160.34.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
ondra.holub+1
Stálý člen
13. 6. 2012   #5
-
+1
-
Zajímavé

A kromě procházení kontejnerů se iterátory používají např. také jako výsledky vyhledávání v kontejnerech (i když to je vlastně taky způsob procházení kontejneru). U iterátoru totiž lze poznat, jestli ukazuje na platná data (to, co jsem hledal, jsem našel) nebo ne (hledaný prvek tam není).

Dále třeba v STL headeru algorithm je spousta (někdy) užitečných algoritmů pro kontejnery, které vesměs přistupují ke kontejnerům přes iterátory. A mnohými z nich jsou zase iterátory vraceny, takže je pak možné různé algoritmy kombinovat.

Nahlásit jako SPAM
IP: 194.138.12.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 140 hostů

Podobná vlákna

Iterator — založil JouiBart

C++ iterator — založil l1zard

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý