Итерация по контейнерам STL и удаление / добавление нескольких элементов
Одна из самых частых ошибок в моем коде заключается в том, что контейнеры STL изменяются во время цикла.
Элементы удаляются или добавляются во время выполнения цикла, поэтому я обычно сталкиваюсь с исключениями за пределами границ.
Мой цикл for обычно выглядит так:
for (auto& Item : Items) { // Will not work when Items container is modified
//... loop logic
}
Когда несколько предметов могут быть удалены, я использую это чудовище:
for (int Index=Items.size()-1;Index