Wie man Elemente aus einem std :: set entfernt, während man darüber iteriert

8

Wie kann ich Elemente aus einem std::set entfernen, während ich darüber iteriere

Mein erster Versuch sieht so aus:

%Vor%

Aber das ist problematisch, wenn wir das erste Element aus der Menge entfernen wollen, weil iter-- den Iterator ungültig macht.

Was ist der übliche Weg, dies zu tun?

    
dspyz 17.12.2013, 06:31
quelle

1 Antwort

13

Der Standardweg ist etwas wie

%Vor%

Nach der ersten Bedingung sind wir sicher, dass iter sowieso nicht ungültig gemacht wird, da eine Kopie von iter an Erase übergeben wird, aber unsere iter ist bereits inkrementiert, bevor das Löschen aufgerufen wird.

In C ++ 11 ist der Code wie

%Vor%     
ForEveR 17.12.2013, 06:35
quelle

Tags und Links