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);  //在末尾加入一個數據

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