您的位置:首页 > 产品设计 > UI/UE

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

2016-10-05 09:45 423 查看
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);//小到大

vector<int>ver(a,a+10);

vector<int>::iterator iter = unique(ver.begin(),ver.end());

ver.erase(iter,ver.end());
for( int *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
到新容器中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: