So entfernen Sie Elemente aus einem std::set während der Iteration über es

Wie kann ich das entfernen von Elementen aus einem std::set während der Iteration über es

Mein Erster Versuch sieht so aus:

set<T> s;

for(set<T>::iterator iter = s.begin(); iter != s.end(); ++iter) {
    //Do some stuff
    if(/*some condition*/)
        s.erase(iter--);
}

Aber das ist problematisch, wenn wir wollen, entfernen Sie das erste element aus dem set, weil iter-- kein iterator.

Was ist der standard-Weg, dies zu tun?

InformationsquelleAutor dspyz | 2013-12-17
Schreibe einen Kommentar