Я новичок в C ++. Я хотел бы знать, как опытные программисты делают это.
что у меня есть:
set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
s.insert(4);
s.insert(5);
for(set<int>::iterator itr = s.begin(); itr != s.end(); ++itr){
if (!(*itr % 2))
s.erase(itr);
}
и, конечно, это не работает. потому что itr увеличивается после того, как он удален.
значит ли это, что Итр должен указывать на начало набора каждый раз после того, как я удаляю элемент из набора?