unique
iterator unique(iterator it_1,iterator it_2);
此函数将序列相邻的相同元素“删除”,并不是真正的删除,而是将后面不重复的元素覆盖这个重复元素,形成一个前面不重复、后面为剩余数字的序列,并且返回剩余序列的第一个元素迭代器。
所以,可用此函数配合erase函数,删除某序列的重复元素。
#include<bits/stdc++.h>
using namespace std;
int main(){
//原序列
vector<int>a={1,2,2,2,3,4,5,5,5,6,7,8,9,9,9};
//打印原序列
for(int i=0;i<a.size();i++){
cout<<a[i]<<" ";
}
vector<int>::iterator it=unique(a.begin(),a.end());
//打印去重后的序列
cout<<endl;
for(int i=0;i<a.size();i++){
cout<<a[i]<<" ";
}
//打印删除重复元素的序列
a.erase(it,a.end());
cout<<endl;
for(int i=0;i<a.size();i++){
cout<<a[i]<<" ";
}
return 0;
}
1 2 2 2 3 4 5 5 5 6 7 8 9 9 9
1 2 3 4 5 6 7 8 9 6 7 8 9 9 9
1 2 3 4 5 6 7 8 9