关于unique去重
作者:互联网
嗯....
unique这个东西也是一个冷门知识.....
但是在有时候它还是比较好用的东西...
下面就在详细代码中看unique是如何实际应用的....它主要是用于数组去重
1 #include<cstdio> 2 #include<algorithm>//algorithm中包含了max,min,swap,sort,reverse,unique等 3 4 using namespace std; 5 6 int n,z[2345678]; 7 8 int main() 9 { 10 scanf("%d",&n); 11 12 for (int a=1;a<=n;a++) 13 scanf("%d",&z[a]); 14 15 sort(z+1,z+n+1);//注意要是想要用unique进行去重,首先要对数组进行排序,然后才能用unique进行去重 16 //注意unique有一个返回值,返回unique操作完后下一个数的地址, eg:11233 ---> 123??,则unique的返回值为4 17 int m = unique(z+1,z+n+1) -z-1;//注意z在这里为地址,所以要减去,因为unique的返回值为下一个数的地址,所以-1即为去重后最后一个数据的地址 18 //注意此处也是右端点要多1,意思是从z[1]去重到z[n] (左闭右开 19 //去重后数组后有几位数不能确定为什么,eg:11233 ---> 123?? 后两位则不能确定为什么值 20 21 22 for (int a=1;a<=m;a++)//因为17行关于m的操作,m现在为最后一个数据的地址,所以for循环可以直接到<=m 23 printf("%d\n",z[a]); 24 }
标签:include,int,重后,....,123,关于,unique 来源: https://www.cnblogs.com/New-ljx/p/10344705.html