方法一
这种方法是简单的利用set的特性,C++中的std::set是基于红黑树的平衡二叉树的数据结构实现的一种容器,因为其中所包含的元素的值是唯一的,因此主要用于去重和排序。
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main()
{
int myints[] = {3,2,1,1,1};
int len = sizeof(myints)/sizeof(int);
vector<int> vec(myints, myints + len);
set<int> s(vec.begin(), vec.end());
vec.assign(s.begin(), s.end());
for(auto x : vec)
cout << x << ",";
return 0;
}
方法二
这种方法是结合sort和unique函数将相邻且重复的元素放到vector的尾部,然后返回指向第一个重复元素的迭代器再用erase函数擦除从这个元素到最后元素的所有的元素。
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int myints[] = {3,2,1,1,1};
int len = sizeof(myints)/sizeof(int);
vector<int> vec(myints, myints + len);
sort(vec.begin(), vec.end());
vec.erase(unique(vec.begin(), vec.end()), vec.end());
for(auto x : vec)
cout << x << ",";
return 0;
}
原文链接:https://blog.csdn.net/caoshangpa/article/details/79972297