c++ vypis kontainera

Programovacie jazyky, rady, poradňa...
skvido
Star
Star
Príspevky: 508
Registrovaný: 17 nov 2008, 7:43
Kontaktovať používateľa:

c++ vypis kontainera

Príspevok od používateľa skvido »

zdravim

mam taky problem ze ked mam

class x{
int a;
string b;
}

napriklad a chcem urobit napr list cize list<x*> L; a chcel by som vypisovat ten string b tak to vypisem takto

for (x* c : L.front()->b ) { ....}

lenze tento zapis funguje iba v novom visualku a ja by som potreboval vediet ako to spravit tak aby som to rozbehal aj na starsich verziach , skusal som cez iterator akurat ze ked si spravim iterator
list<x*>::iterator it=L.begin() tak neviem ako sa cez to "it" dostanem k tomu stringu ktory obsahuje lebo it->b mi nefunguje
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: c++ vypis kontainera

Príspevok od používateľa BX »

Ten zápis cyklu je z C++11, rozbeháš to aj na iných prekladačoch, len treba zapnúť podporu pre c++11.
(i keď sa mi ten zápis zdá aj tak nejaký divný, ale dnes už sa mi nechce rozmýšľať)

Inak cez iterátory takto http://www.cplusplus.com/reference/iterator/begin/
V tvojom prípade

Kód: Vybrať všetko

(*it)->b
Plus, neviem ako ti to môže ísť, keď v triede je ako default obmedzenie private, takže priamo k tým prvkom nepristúpiš. Ale predpokladám, že to je len omyl pri zjednodušení skutočného zadania.
skvido
Star
Star
Príspevky: 508
Registrovaný: 17 nov 2008, 7:43
Kontaktovať používateľa:

Re: c++ vypis kontainera

Príspevok od používateľa skvido »

to som dal iba ako priklad aby som vysletlil problem , hej ma tam byt public
a dakujem vemi :) cely problem bol v tom ze som daval *it a nie (*it) :D , este raz dakujem
Napísať odpoveď