【C++】 删除vector中重复元素

代码:

vector<int> v={1,2,4,3,5.2};
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());

解释:

unique函数是一个去重函数,去除相邻中的重复元素(只留一个)。其中,最关键的是:unique并不是真正地把重复的元素删除,而是全部放在数组的后面(只留一个)。因此,为了去除重复的元素,应该,首先对数组/Vector进行排序,这样保证重复元素在相邻的位置。
另外,unique函数返回的是去重后的尾地址。因此对于一个内容为{2, 2, 5, 5, 6}的vector,执行unique函数以后,vector大小并没有改变,只不过顺序变成了{2, 5, 6, 2, 5},并且函数的返回值为:3。
点击此处查看erase函数。

参考

https://blog.csdn.net/u010005161/article/details/51259553
https://blog.csdn.net/u010141928/article/details/78671603

猜你喜欢

转载自blog.csdn.net/f156207495/article/details/82937680