unique函数
切记,没有排序前只是去掉相邻的重复元素,如果要真正去重就要排序
- 现在总结一下unique,unique的作用是“去掉”容器中相邻元素的重复元素(不一定要求数组有序),它会把重复的元素添加到容器末尾(所以数组大小并没有改变),而返回值是去重之后的尾地址
- 由于返回的是容器末尾,所以如果想得到去重后的size,需要减去初始地址,lower_bound是得到地址,稍微不同。
- unique的作用是“去掉”容器中相邻元素的重复元素,这里去掉要加一个引号,为什么呢,是因为它实质上是一个伪去除,它会把重复的元素添加到容器末尾,而返回值是去重之后的尾地址(是地址!!)
-
#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; } }


浙公网安备 33010602011771号