c++ unique()去重
vector 是可以直接用下标访问的一类容器vector <int> A;A.push_back(1);cout<<A[0];可以不断的往里面放东西,不用像普通数组一般担心越界还有很多函数供调用unique()–去重unique(A.begin(),A.end())但是注意这里并没有删除元素,只是把元素移到了末尾vector<int>:...
·
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删除对应区间(即重复部分)即可完成去重操作
更多推荐
已为社区贡献2条内容
所有评论(0)