【转】C++给vector去重的两种方法
转自这篇博客
第一种方法是简单的利用set的特性,这部分代码比较简单,直接上code:
1 |
|
第二种方法是结合sort和unique函数
unique()函数将相邻且重复的元素放到vector的尾部 然后返回指向第一个重复元素的迭代器再用erase函数擦除从这个元素到最后元素的所有的元素。
所以可以先进行排序,这样重复元素就会堆一起了,调用unique()函数,再调用erase函数删除重复。代码见下:
1 |
|
上述代码中for (auto x : nums)
作用就是迭代容器中所有的元素,每一个元素的临时名字就是x,等同于下边代码for (vector<int>::iterator iter = nums.begin(); iter != nums.end(); iter++)