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