Qt4 und empfohlenes Container löschen/leeren/freen



  • Hallo,

    Ich verwende QT4 und frage mich, ob es eine empfohlene Variante gibt, wie man alle Elemente eines Containers löschen soll?
    dh: Alle Elemente aus dem Container entfernen und gleichzeitg Objekt deallokieren (delete).

    QQueue<Foo*>::iterator it = myList->begin();
    		while ( it != myList->end() ) {
    			SafeDelete((*it));
    			it = myList->erase(it);
    		}
    		assert(myList->isEmpty());
    		SafeDelete(myList);
    

    Gibts da was kürzeres oder bessers?

    danke im Voraus!



  • Jetzt hab ich schon länger gesucht und gerade jetzt hab ich dann:

    qDeleteAll(Container...);
    

    gefunden.

    Ich denke das ist, was ich gesucht hab.
    Oder was sind eure Meinungen?

    danke



  • Hallo,

    das wird wohl nicht reichen, denn ich lese:

    QT-Doku schrieb:

    Notice that qDeleteAll() doesn't remove the items from the container; it merely calls delete on them. In the example above, we call clear() on the container to remove the items.

    Wird noch ein Clear nötig sein... 😉

    MfG,

    Probe-Nutzer



  • ja, du hast recht - das wird doch auch so empfohlen und ich hatte es bereits uebernommen. Leider nicht hier erwaehnt.
    Of verwende ich auch Container Pointers und wenn man den Destructor aufruft, wird automatisch clear() aufgerufen...

    danke


Log in to reply