Полагаю, что предоставленный вами код - это просто "код фантазии" (как сказал один из комментаторов), чтобы дать конкретный пример того, что вы пытаетесь сделать.
Однако на всякий случай это не так: цикл, который вы дали, пропустит 12-й элемент (т.е. элемент, изначально в stlVector[11]
), потому что при проверке stlVector[10]
вы удаляете более ранний элемент, вызывая последующие элементы шунтируют вперед на одну позицию, но вы все равно увеличиваете i
в конце цикла. Таким образом, следующая итерация будет смотреть на stlVector[11]
, который на самом деле является элементом, который изначально был в stlVector[12]
. Чтобы исправить это, вам нужно --i
после звонка на erase()
.