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删除对应区间(即重复部分)即可完成去重操作