У меня есть некий map. Пробегаюсь я по нему циклом. И мне надо прямо в цикле уметь удалять элементы из map без потери хода цикла. Многое пробовал написать, все быдлокод получался, который вдобавок еще и не работает. Подскажите, пожалуйста, как лучше всего это реализовать?
Я обычно пишу так (тоже некрасиво, да):
Здесь предлагают чуть по-другому:
Можно скомбинировать, получится почти красиво:
Спасибо :)
В С++11 метод erase возвращает итератор на следующий элемент, так что совсем красиво это:
К сожалению в стандарте C++98 этот метод возвращает void, но в некоторых компиляторах эта функциональность всё же есть.
Ух ты, не знал. Спасибо :)