vector<*object> aus dem Speicher löschen=>Speicherverletzung



  • Skym0sh0 schrieb:

    oder machs mit einem pointer container, boost hat ptr_vector (oder so ähnlich)
    der löscht die objekte automatisch. oder nimm std::vector< std::shared_ptr<Ant> >

    Nein, nimm wenn möglich Objekte. Die zusätzliche Indirektion ist normalerweise unnötig. Und der Overhead für Shared-Ownership erst recht...

    ptr_vector<T> kann man nehmen, falls man besitzende Zeiger braucht (z.B. nicht- bzw. teuer kopierbare oder polymorphe Objekte). vector<shared_ptr<T>> ist angebracht, falls die Objekte noch irgendwo ausserhalb referenziert werden, wo ebenfalls ein Besitzanspruch vorhanden ist. Das kommt aber eher selten vor...


Anmelden zum Antworten