C++vector去重

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 到新容器中。

原文链接: https://www.cnblogs.com/fanko/p/11277329.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++vector去重

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/300066

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 下午9:07
下一篇 2023年2月15日 下午9:07

相关推荐