Problem: map und iterator
-
void xtWorld::Render(string animname , SDL_Rect* r) { map<string , xtObject>::iterator it; for (it = mapObjects.begin(); it != mapObjects.end(); it++) { (*it).StartAnim(animname , r); } }mapObjects ist vom Typ map<string , xtObject>.
Irgendwie will das mein compiler (g++) nicht kompilieren.[...] error: 'StartAnim' undeclared (first use this function)Darf man überhaupt iteratoren im zusammenhang mit maps benutzen?
Ich will mittels iterator die map durchlaufen und dabei jedes Element rendern(StartAnim aufrufen).
ps: Ja, ich habe mit Absicht eine map genommen und keinen vector.Und it->StartAnim(animname , r); ging auch nicht.
Hat jemand eine Ahnung?
-
it->second.startAnim (animname, r);Die Iteratoren zeigen auf die Key-Value-Paare (hier std::pair<std::string, xtObject>).
-
EDIT_3:Ok, thx...jetzt lässt es sich kompilieren.
EDIT_4:Und es funktioniert perfekt!