C++ vector和sort的使用

向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器

sort的函数的功能是排序,但需要头文件#include<algorithm>的支持,所以在使用该函数时,一定要记得加上头文件。

该程序实现的功能是对数组进行排序并去重。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class A {
public:
    A(vector<int> a)
    {
        num = a;
    }
    vector<int> deleteData()
    {
        sort(num.begin(), num.end());    //从小到大排序
        int i = 0, n = 0;
        for (i = 0; i < num.size() - n; i++)  //此处减去n的原因是防止出现越界的问题。
        {
            if (num[i] == num[i + 1])
            {
                num.erase(num.begin() + i);    //删除位置为i的元素
                ++n;
            }
        }
        return num;
    }
    void print(vector<int> str)    //打印数据
    {
        for (auto x : str) {
            std::cout << ' ' << x;
        }
        std::cout << '\n';
    }
    ~A()
    {

    }
private:
    vector<int> num;
};

int main()
{
    //int a;
    //while (std::cin >> hex >> a) {  //把输入的十六进制数转换为十进制
    //    cout << a << endl;
    //}

    vector<int> num{ 11,10,20,40,32,67,40,20,89,300,400,15 };
    A a(num);  //实例化
    a.print(a.deleteData());
getchar();

return 0;
}

结果输出:

 10 11 15 20 32 40 67 89 300 400

对于vector的其他用法:

vector<int> a;

a.insert(pos,data); //在位置pos处,插入data数据

a.insert(pos,n,data); //在位置pos处,插入n个data数据

a.erase(pos);  //删除位置为pos的元素

a.begin();  //返回迭代器的第一个位置

a.end();  //返回容器的最后一个元素后面的元素的迭代器

a.front();  //返回第一个元素

a.max_size();  //返回容器中最大元素的个数

a.pop_back();  //删除最后一个数据

a.push_back(data);  //在末尾加入一个数据

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章