unique函数

切记,没有排序前只是去掉相邻的重复元素,如果要真正去重就要排序

  1. 现在总结一下unique,unique的作用是“去掉”容器中相邻元素的重复元素(不一定要求数组有序),它会把重复的元素添加到容器末尾(所以数组大小并没有改变),而返回值是去重之后的尾地址
  2. 由于返回的是容器末尾,所以如果想得到去重后的size,需要减去初始地址,lower_bound是得到地址,稍微不同。
  3.  unique的作用是“去掉”容器中相邻元素的重复元素,这里去掉要加一个引号,为什么呢,是因为它实质上是一个伪去除,它会把重复的元素添加到容器末尾,而返回值是去重之后的尾地址(是地址!!)
  4. #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        int n;cin>>n;
        while(n--)
        {
            long long a[10009];
            int m;
            cin>>m;
            for(int i=0; i<m; i++)
            {
                cin>>a[i];
            }
            cout<<unique(a,a+m)-a<<endl;
        }
    }

     

     

posted @ 2020-11-25 19:04  hhhgzj  阅读(318)  评论(0)    收藏  举报