List Iterator not incrementable
-
Moin
void CGame::CheckCollisions() { // Wandkollision überprüfen m_bGameRun = m_Player.CheckCollisions(); // Sternkollision überprüfen list<CStar>::iterator ItStars = m_StarList.begin(); while(ItStars != m_StarList.end()) { if(!m_Player.CheckHead(ItStars->GetX(), ItStars->GetY())) { ItStars++; } else { ItStars = m_StarList.erase(ItStars); m_Player.NewPart(); } } } // CheckCollisionsBekomme, sobald der erase teil, also der else zweig aufgerufen wird eben diese fehlermeldung
"list iterator not incrementable"
was eigentlich ja daran liegt dass man das in einer for schleife macht und dann das letzte element übersprungen werden kann. da ich hier aber keine benutze, verstehe ich den fehler nicht.
hoffe um schnelle hilfe
gruß kane
-
Ändert NewPart womöglich dieselbe Liste?
-
nein, der greift auf eine andere liste zu und wenn ich die erase zeile zum comment mache, funktioniert es auch ohne probleme, abgesehen davon das halt der gewünschte erase befehl nicht ausgeführt wird

-
Schon das Problem gelöst... Würde mich gern Interessieren woran es lag bzw noch liegt
