unique:去重函数
iterator unique(iterator iter1,iterator iter2)
// 在[iter1,iter2)中去重 ,是左闭右开区间!!!
//注:iter1,iter2,unique()的值均可用指针替代
//例如:
//int arr[100] ;
//cout << unique(arr,arr+99)-arr << endl ;//减去头指针即可取得数组长度
//sort好的数据才能unique!
示例代码:
#include <algorithm>
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std ;
int arr[100] ;
int main()
{
srand(time(NULL)) ;
for(int i=0;i<10;i++)
arr[i]=rand()%10 ;
// 取随机值 rand()
puts("original:") ;
for(int i=0;i<10;i++)
printf("%d ",arr[i]) ;
puts("\nsort:") ;
sort(arr,arr+10) ;
for(int i=0;i<10;i++)
printf("%d ",arr[i]) ;
//sort
puts("\nunique:") ;
int cnt=unique(arr,arr+10)-arr ;
for(int i=0;i<cnt;i++) //try:change cnt into 10
printf("%d ",arr[i]) ;
// unique
return 0 ;
}