c++ unique()去重

unique()–去重 (Ps:要先进行排序,保证重复元素相邻)

unique(A.begin(),A.end())

但是注意这里并没有删除元素,只是把元素移到了末尾
下面进行调试详细了解:
依次往A中放1, 1, 1, 2, 2
然后调用unique()
在这里插入图片描述
如果要切实删除的话,进行如下步骤:

vector<int>::iterator new_end = unique(c.begin(), c.end());
c.erase(new_end, c.end());

使用erase删除末尾一段即完成了去重 ~~

unique会把相邻重复元素全部丢到队列末尾,只留下一个在原队列
而且, unique() 的返回值就是被后置元素的“首地址”(迭代器) ,即是上述例子里下标为 2 的位置。
利用好unique的返回值, 然后用erase删除对应区间(即重复部分)即可完成去重操作

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值