erase函数原型
iteratorerase(iterator position);//a.erase(p),删除迭代器p所指向的元素,a为容器对象
iteratorerase(iterator first, iterator last);//a.erase(b,c),删除迭代器b,c区间内的元素,a为容器对象
//返回值都是一个迭代器,该迭代器指向被删除元素后面的元素
删除指定元素
for (auto it = nums.begin(); it != nums.end();) {if (*it == val) {it = nums.erase(it);} else {it++;}
}
参考:https://blog.csdn.net/ww1473345713/article/details/92801632
删除重复元素
//初始化一个数组a
vector<int> a = {2,1,6,4,4,1,1};
//对vector进行排序
sort(a.begin(), a.end());
//去重和删除元素,其中unique函数从头到尾,判断当前元素是否等于上一个元素,将不重复的元素移到前面来(赋值操作),而不是将重复的元素移动到后面去,去重以后返回vector中没有重复元素的下一个位置的迭代器
a.erase(unique(a.begin(), a.end()), a.end());