我该如何在遍历 std::set
时删除其中的元素?
我的第一次尝试如下:
set<T> s;
for(set<T>::iterator iter = s.begin(); iter != s.end(); ++iter) {
//Do some stuff
if(/*some condition*/)
s.erase(iter--);
}
但是,如果我们想从集合中删除第一个元素,iter--
会使迭代器失效,这将带来问题。
有什么标准方法可以解决这个问题吗?