Teneriffa Süd Abflug
Können Sie garantieren, alle zu fangen? Zumindest für eine Liste, iterierend und löschend, dann ist das Löschen am Ende etwas ungenügend, da es darum geht, die Liste zweimal zu durchlaufen, wenn Sie es wirklich nur einmal tun müssen. Hier ist ein etwas besserer Weg: for ( list < Foo *>:: iterator i = foo_list. begin (), e = foo_list. end (); i! = e;)
{
list < Foo *>:: iterator tmp ( i ++);
delete * tmp;
foo_list. erase ( tmp);} Das heißt, Ihr Compiler kann schlau genug sein, um die beiden zu kombinieren, je nachdem, wie list:: clear implementiert ist. for ( list < Foo *>:: const_iterator i = foo_list. end (); i! = e; ++ i)
delete * i;
foo_list. clear ();
Da wir hier den Fehdehandschuh werfen... Awl programmierung grundlagen pdf image. "Kürzester Brocken von C ++" static bool deleteAll ( Foo * theElement) { delete theElement; return true;}
foo_list. remove_if ( deleteAll); Ich denke, wir können den Leuten vertrauen, die mit STL aufwarten, um effiziente Algorithmen zu haben. Warum das Rad neu erfinden? Für std::list
3895782807 Automatisieren Mit Step 7 In Awl Und Scl Speicher
Aufräumen einer AWL-Liste/Vektor von Zeigern (14) Was ist der kürzeste Teil von C ++, mit dem Sie einen Vektor oder eine Liste von Zeigern sicher bereinigen können? (vorausgesetzt Sie müssen löschen auf den Zeigern aufrufen? ) list < Foo *> foo_list; Ich würde Boost lieber nicht verwenden oder meine Zeiger mit intelligenten Zeigern verpacken. Es ist wirklich gefährlich, sich auf Code außerhalb des Containers zu verlassen, um Ihre Zeiger zu löschen. Was passiert, wenn der Container zum Beispiel durch eine geworfene Ausnahme zerstört wird? Ich weiß, dass du Boost nicht magst, aber bitte beachte die Boost-Pointer-Container. Ich bin mir nicht sicher, ob der Funktoransatz hier aus Kürze gewinnt. for ( list < Foo *>:: iterator i = foo_list. begin (); i! Awl programmierung grundlagen pdf downloads. = foo_list. end (); ++ i) delete * i; Ich würde jedoch normalerweise davon abraten. Das Umschließen der Zeiger in Smart-Pointers oder mit einem speziellen Pointer-Container wird im Allgemeinen robuster sein. Es gibt viele Möglichkeiten, Elemente aus einer Liste zu entfernen (verschiedene Arten von erase, clear, Löschen der Liste, Zuordnung über einen Iterator in die Liste usw. ).
Der Leser erhält mit diesem Anhang Informationen zur Sicherheitstechnik mit SIMATIC S7. Der Leser erhält mit diesem Anhang eine Einführung in die Ethernet- bzw. Internet-Technologien, die für das Verständnis der Module E1-E3 benötigt werden.
foo. empty ()) delete foo. front (), foo. pop_front (); Für std::vector