【发布时间】:2011-01-06 12:08:52
【问题描述】:
我是 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 都必须指向集合的开头?
【问题讨论】: