【发布时间】:2014-01-04 19:40:44
【问题描述】:
如何在迭代 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-- 使迭代器无效。
执行此操作的标准方法是什么?
【问题讨论】:
标签: c++ stl coding-style set