方法一

这种方法是简单的利用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

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐