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