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

Iterace v seznamu – C / C++ – Fórum – Programujte.comIterace v seznamu – C / C++ – Fórum – Programujte.com

 

kterosuom
~ Anonymní uživatel
2 příspěvky
9. 11. 2008   #1
-
0
-

Zdravím,

zkouším iterovat v třídě wxList:

for(iter = seznam->begin(); iter != seznam->end(); ++iter){

List* item = *iter;
.
.


pote testuji zda mi vyhovuji nejaké podmínky



if (item->cislo == 2){
pom += item->value;
}


Ale nevím, jak se přistuje k jednotlivým položkám v seznamu. Např. potřeboval bych otestovat item->cislo s iter o jedno mensim. neco jako v OBJARRAY:

(seznam->Item(i-1).cislo == 2)


nevíte jak na to v seznamu?

Diky

Nahlásit jako SPAM
IP: 89.176.147.–
9. 11. 2008   #2
-
0
-

Nevim o wxList, ale treba v STL kontejneru queue lze pristupovat pouze k prvnimu pridanemu prvku (v kontejneru Stack je to potom naopak). "Nahodny pristup" (tak se rika primemu pristup k prvkum) prodporuje napriklad STL Vector (ten se chova jako trochu vylepsene dynamicke pole).

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
ondra
~ Anonymní uživatel
244 příspěvků
9. 11. 2008   #3
-
0
-

To kterosuom : Pokud mám iterátor na nějaký prvek, tak iterátor na předešlý je (iter - 1).

Nahlásit jako SPAM
IP: 85.207.23.–
kterosuom
~ Anonymní uživatel
2 příspěvky
9. 11. 2008   #4
-
0
-

ondra napsal:
To kterosuom : Pokud mám iterátor na nějaký prvek, tak iterátor na předešlý je (iter - 1).



Ahoj Ondro,

dik za prispevek, ale kdyz uz odpovidas tak si to precti aspon cele ;) jde o wxList.

Nahlásit jako SPAM
IP: 194.108.42.–
10. 11. 2008   #5
-
0
-

Na tohle je jedina rada - projed si dokumentaci k tou wxListu a bud to umi - a pak to tam bude napsane - nebo to neumi (coz by tam taky nejspis bylo napsane)

Nahlásit jako SPAM
IP: 78.102.164.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
KIIV
~ Moderátor
+43
God of flame
10. 11. 2008   #6
-
0
-

tak si na konci cyklu vzdy schovej ten aktualni iterator... pak budes mit v nasledujicim kole "predchudce"

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
ondra
~ Anonymní uživatel
244 příspěvků
10. 11. 2008   #7
-
0
-

To kterosuom :
OK, tak se musí udělat druhý iterátor a ten zmenšit, když už zapomněli na operator-:

    const TestDataList::iterator end = l.end();

for (TestDataList::iterator it = l.begin(); it != end; ++it)
{
if (it != l.begin())
{
TestDataList::iterator prev = it;
--prev;
int x = (*prev)->idata_;
}
}

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, 63 hostů

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ý