Der folgende Code funktioniert nicht richtig. Wie sollte es richtig gemacht werden?Wie über einen STL-Satz iterieren und Elemente selektiv entfernen?
for (std::set<Color>::iterator i = myColorContainer.begin();
i!=myColorContainer.end();
++i)
{
if (*i == Yellow)
{
DoSomeProccessing(*i);
myColorContainer.erase(i);
}
}
Code ist standardkonform. Ich stimme @Viktor sehr zu Dies wäre der bevorzugte Weg um ein Element aus dem Set zu entfernen. In der Frage wird jedoch gefragt, wie das Code-Snippet funktioniert. –
@daramarak: Ich glaube, du hast geantwortet, während ich den Code bearbeitet habe (dachte, es wäre ein std :: vector in meinem ersten Beitrag) –