使用std :: vector.erase(begin(),end())或std :: vector.erase(begin(),begin())是否安全?

Mir*_*pas 4 c++ stl

我想在一段时间内处理一个向量中的元素.为了优化这一点,我不想在处理项目时删除它,并在最后删除所有已处理的项目.

vector<Item*>::iterator it;
for(it = items.begin(); it != items.end(); ++it)
{
    DoSomething(*it);

    if(TimeIsUp())
    {
        break;
    }
}

items.erase(items.begin(), it);
Run Code Online (Sandbox Code Playgroud)

使用擦除时安全it == items.end()吗?在文件中,据说erase()将删除[第一个,最后一个],这应该是安全的,但我想确定.

编辑:

使用std :: vector.erase(begin(),begin())是否安全?

dje*_*lin 5

是的,这是正确的 - 这是符号的[first, last)意思,并end()指出一个结束.