Ich bin durch eine std::map
zweimal durchlaufen mit einer äußeren for
Schleife und einer verschachtelten for
Schleife. Ich möchte die innere Schleife stoppen, wenn die Bedingung erfüllt ist. Ich weiß, wenn ich Pause nenne, wird es beide Schleifen stoppen. Ich will das nicht. Ich möchte nur die innere for
Schleife stoppen.Wie kann ich eine for-Schleife stoppen, indem ich den std :: map-Iterator vorschiebe?
Mein Code-Schnipsel ist wie folgt:
for(auto markerCounter = ellipsePropertiesMap.begin(); markerCounter != ellipsePropertiesMap.end(); markerCounter++)
{
for(auto markerCounter2 = ellipsePropertiesMap.begin(); markerCounter2 != ellipsePropertiesMap.end(); markerCounter2++)
{
if(conditionMet)
std::advance(markerCounter2, ellipsePropertiesMap.size());
//I also tried the following:
//markerCounter2 = ellipsePropertiesMap.end();
//markerCounter2++;
}
}
Ich versuche, die inneren for-Schleife zu stoppen, indem das Iterator durch die Größe des std :: map voran, aber es funktioniert nicht. Ich habe auch versucht, den End-Iterator zu bekommen und ihn weiter zu bringen, um die Schleife zu beenden. Anscheinend funktioniert das auch nicht.
Also, wie kann ich eigentlich die innere Schleife stoppen?
Danke.
'break' betrifft nur eine Schleife – DimChtz
Wie komplex ist die Bedingung? Müssen Sie etwas Besonderes tun, wenn die Bedingung erfüllt ist und die Schleife endet? Oftmals kann es dem Bedingungsteil der Schleife selbst hinzugefügt werden. – NathanOliver