Я повторяю через std::map
дважды с помощью внешнего цикла for
и вложенного цикла for
. Я хочу остановить внутренний цикл, когда условие выполнено. Я знаю, что если я позвоню, это остановит оба цикла. Я не хочу этого. Я хочу только остановить внутренний цикл for
.Как остановить цикл for, продвигая итератор std :: map?
Мой фрагмент кода, как показано ниже:
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++;
}
}
Я пытаюсь остановить внутренний цикл, продвигая итератор по размеру станд :: карта, но она не работает. Я также попытался получить конечный итератор и продвинуть его, чтобы закончить цикл. Видимо, это тоже не работает.
Итак, как я могу фактически остановить внутренний цикл?
Спасибо.
'break' влияет только на один цикл – DimChtz
Насколько сложным является условие? Вам нужно сделать что-нибудь особенное, если условие встречается, кроме окончания цикла? Часто это может быть добавлено к условию самой части цикла. – NathanOliver