迭代器用于erase删除元素后,其后会失效,即不能再用该迭代器操作向量。
问题叙述:
Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
实现代码:
int removeElement(vector<int>& nums, int val) {
int total = 0;
vector<int>::iterator iter = nums.begin();
while(iter != nums.end())
{
if(*iter == val)
{
iter = nums.erase(iter);
}
else
{
total++;
iter++;
}
}
return total;
}