Einzelne Listenelemente löschen erase
-
Hallo Leute,
habe da Problem das mich jetzt leider schon länger ebschäftigt,
das kann doch nicht so schwer sein.Ich möchte aus einer Liste einfach nur ein bestimmtes Element löschen.
Die liste enthält Zeiger auf Objekte (falls das Wichtig sein sollte)
Müssen die Objekte nicht auch gleich irgendwie gelöscht werden?Bekomme Laufzeitfehler, nachdem das Element gelöscht wurde!!!
Wäre sehr nett, wenn mir d ajemand weiter helfen könnte :pvoid Player::removeItem ()
{
bool found = false;
string eItem;
cout << "Welchen Gegenstand moechten Sie loeschen: ";
cin >> eItem;
cout << endl;TypListEraseIter Iter;
for ( Iter = this->inventar.begin(); Iter != this->inventar.end(); Iter++ )
{
if ( eItem == (*Iter)->getName() )
{
this->inventar.erase (Iter);
found = true;
}
}
if ( !found ) cout << "Gegenstand befindet sich nicht im besitz des Spielers!" << endl;
}Grüße
Jens
-
- code-Tags verwenden!
- nach erase() ist der Iterator ungültig, schau mal in die anderen Threads mit std::list