关于STL中vector使用unique()去重的问题

STL中Unique函数的作用是去除相邻重复元素
#include
#include
#include
using  namespace std
int main()
{
int a[ 10] = { 7, 4, 1, 7, 4, 1, 7, 4, 1, 0};
sort(a,a+ 10); // 小到大

vectorver(a,a+ 10);

vector::iterator iter = unique(ver.begin(),ver.end());
ver.erase(iter,ver.end());
forint *t = ver.begin() ; t != ver.end() ; t ++ )
printf( " %d  ",*t);
return  0;
}
数组排完序之后的结果是a[10]={0,1,1,1,4,4,4,7,7,7};
故此段程序的输出结果是0 1 4 7


另外,也可以实现vector的不排序去重:
方法是在遍历的时候,将相等的元素除第一个外,后面的统统作标记。如:一个字符序列,可以用数字0来标记。应该说,直接将0赋值给这个元素。然后通过另一个容器,在遍历原容器的同时,将没有做标记的元素Push_back 到新容器中。

你可能感兴趣的:(关于STL中vector使用unique()去重的问题)