我是 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 都必须指向集合的开头?