unique 的功能
是去除相邻的重复元素 (只保留一个), 但是它并不真正把重复的元素删除而是把重复的元素放到数组的最后面藏起来了
先排序才能去重
作用一: 对 vector 元素去重
- #include<bits/stdc++.h>
- using namespace std;
- //STL 中 vector 使用 unique() 去重
- int main(){
- int n,x;
- while(scanf("%d",&n)!=EOF){
- vector<int> mm;
- int i,j,k;
- for(int i=0;i<n;i++){
- scanf("%d",&x);
- mm.push_back(x);
- }
- sort(mm.begin(),mm.end());
- mm.erase(unique(mm.begin(),mm.end()),mm.end());
- for(int i=0;i<mm.size();i++){
- printf("%d\n",mm[i]);
- }
- }
- }
作用二: 对数组使用 unique() 去重
- #include<bits/stdc++.h>
- using namespace std;
- // 对数组使用 unique() 去重
- int main(){
- int n,x;
- while(scanf("%d",&n)!=EOF){
- int mm[100];
- for(int i=0;i<n;i++){
- scanf("%d",&mm[i]);
- }
- sort(mm,mm+n);// 先排序
- int len1=unique(mm,mm+n)-mm;// 不重复的数字个数
- for(int i=0;i<len1;i++){
- printf("%d",mm[i]);
- }
- }
- }
来源: http://www.bubuko.com/infodetail-3194017.html