今天写vector删除的时候犹豫了一下。
vector删除的时候都是用erase(where);这个函数调用的时候,如果删除成功, iterator会自动移动到下一个。所以在循环操作的时候注意一下就行了。
例子:
vector<int> l_vectorInt;
for (int ii = 0; ii < 5; ii++)
{
l_vectorInt.insert(ii);
}
vector<int>::iterator l_iter = l_vectorInt.begin();
while (l_iter != l_vectorInt.end())
{
if (删除)
{
//删除,l_iter自动移动到下一个
l_vectorInt.erase(l_iter);
}
else
{
l_iter++;
}
}