C++vector去重
STL中Unique函数的作用是去除相邻重复元素
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> name1{ 1, 2 , 1, 3, 4 }; //赋值
sort(name1.begin(), name1.end()); //排序
vector<int>::iterator iter = unique(name1.begin(), name1.end()); //用unique去除相邻的查复元素
name1.erase(iter, name1.end()); //这个我也不懂,反正没他不行
return 0;
}
数组排完序之后的结果是a[10]={0,1,1,1,4,4,4,7,7,7};
故此段程序的输出结果是0 1 4 7
另外,也可以实现vector的不排序去重:
方法是在遍历的时候,将相等的元素除第一个外,后面的统统作标记。如:一个字符序列,可以用数字0来标记。应该说,直接将0赋值给这个元素。然后通过另一个容器,在遍历原容器的同时,将没有做标记的元素Push_back 到新容器中。