我想处理向量中的元素一段时间。为了优化这一点,我不想在处理项目时删除它,并在最后删除所有已处理的项目。
vector<Item*>::iterator it;
for(it = items.begin(); it != items.end(); ++it)
{
DoSomething(*it);
if(TimeIsUp())
{
break;
}
}
items.erase(items.begin(), it);
什么时候使用擦除安全it == items.end()
吗?在文档中据说erase()
会删除 [first,last) 这应该是安全的,但我想确定。
编辑:
使用 std::vector.erase(begin(), begin()) 是否安全?