Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » STL list

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.06.2004, 19:09 Uhr
~Atom
Gast


Hi @ all

ich versuche an einen Iterator der list zu kommen, aber irgend wie gehts nicht

C++:
hit_t* CRaster::getStadtInFeld(list<CCity*>* list,double xi,double yi)
{
    list<CCity*>::iterator i;
             return NULL;
}



In dieser Funktion brauch ich den Iterator. Wie komme ich an den ran wenn meine Liste wie oben in der Parameter Liste aussieht?

Danke an alle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.06.2004, 19:22 Uhr
typecast
aka loddab
(Operator)


Erstens nenn deinen Parameter am besten nicht list, das verwirrt nur, außerdem vermute ich mal, dass du ein using std::list oder using namespace std; gemacht hast. Deshalb sollte es gleich garnicht funktionieren. Ich nenne den Parameter im Beispiel mal cityList


C++:
list<CCity*>::iterator i;  // iterator auf den Typ list<CCity*>
i = cityList->begin(); // hohlt sich den ersten iterator der Liste


--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.06.2004, 10:04 Uhr
~Atom
Gast


Danke für deine Antwort

Aber was machst du jetzt anders als ich? Es stimmt ich habe ein using namespace std; gemacht.
Deine Zeile sieht doch aus wie meine? Diese will g++ nicht haben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
18.06.2004, 14:10 Uhr
RHBaum



1. ich wuerd nen typedef machen ....

typedef std::list<CCity*> CityListT;

2. ich wuerd keinen Zeiger auf die liste, sondern ne referenz nehmen ...

C++:
hit_t* CRaster::getStadtInFeld(CityListT & rList,double xi,double yi)
{
}



3. der iterator sollt dann einfach gehen

C++:
hit_t* CRaster::getStadtInFeld(CityListT & rList,double xi,double yi)
{
     CityListT::iterator it = rList.begin();
}



4. wenn die Liste ned veraenderst, sondern nur drinrumsuchst, mach sie const

C++:
hit_t* CRaster::getStadtInFeld(const CityListT & rList,double xi,double yi)
{
     CityListT::const_iterator it = rList.begin();
}



5. iteratoren bekommt man nur auf bestimmten positionen. Also man gibt nen einsprungspunkt an, und kann mit dem erzeugten Objekt(iterator) navigieren. also find, upper, lower, begin, end ... und noch mehr, sowie manche funktionen die deine list manipulieren geben dir auch iteratoren zurueck. Ohne eine konkrete Position ist nen iterator aber wertlos, also nur nen platzhalter, wie nen unitialisierter zeiger halt.

Ciao ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.06.2004, 16:02 Uhr
~Atom
Gast


Der Iterator wurde dannach in einer for-Schleife auf den Anfang gesetzt. Nur dachte ich, daß die Zeile nicht so wichtig ist, da g++ schon bei der besagten oben hängen bleibt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.06.2004, 19:33 Uhr
~Atom
Gast


Danke das wars, nurn geht!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: