Was passiert, wenn ein std :: vector-Element 'Selbstmord begeht' (mit delete this;)?

Angenommen, es gibt einen Vektor vonItems

vector<Item*> items; //{item1, item2, item3}

Dann, in einem anderen Teil des Codes,

items[1]->suicide();

bei dem diesuicide Funktion ist:

void Item::suicide()
{
   delete this;
}

Was istitems Vektorgröße und wie ist es jetzt Anordnung? Es istin Ordnung um dies zu tun?

Bearbeiten (Darf ich noch eine Frage stellen?): Wenn die gewünschte Anordnung der Ausgabe ist{item1, item3}Größe ist2, und kein baumelnder Zeiger, wie es auf selbstzerstörende Weise zu tun ist (von deritem2 selbst)?

Bearbeiten 2 : Danke für alle Antworten! Genial. Also entschied ich mich und fand den Weg, es von außerhalb des Objekts zu tun, weil es eine schlechte Übung und unnötig kompliziert war

Antworten auf die Frage(7)

Ihre Antwort auf die Frage