//在遍历vector时,中间插入与删除需注意,有坑
//本示例在每个数字“3”后面插入“4”
vector<int> vec1 = {1,3,2,3,5,3};
vector<int>::iterator it1 = vec1.begin();
while (it1 != vec1.end())
{
if (3 == *it1)
it1=vec1.insert(it1+1, 4); //在当前位置后面插入,所以+1,插入后返回插入数据的位置
it1++;
}
//本示例删除每个数字“3”
vector<int> vec2 = {1,3,2,3,4,3};
vector<int>::iterator it2 = vec2.begin() ;
while (it2 != vec2.end())
{
if (3 == *it2)
it2 = vec2.erase(it2); //删除当前元素后,iterator自动指向下一个元素
else
it2++;
}