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!


Anmelden zum Antworten