c++ 中Vector中,循环使用erase来删除某一个位置,将指向下一个位置,所以将其返回值依旧指向迭代器iter。(指针指向问题)
vector<int>::iterator iter;
vector<int>::iterator iter1;
for (iter = nums.begin();iter != nums.end() - 1;)
{
if (*iter == 10)
{
iter1 = iter;
iter = nums.erase(iter1);
}
else
iter++;
}