Я новичок в С++. Я хотел бы знать, как это делают опытные кодеры.
что у меня:
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 увеличивается после его стирания. означает ли это, что Itr должен указывать на начало набора каждый раз после стирания элемента из набора?