一、引入头文件
#include <vector>
二、基本用法
2.1 创建对象
vector<int> a; // 尖括号中为这个向量中的元素的数据类型
2.2 尾部插入数据
a.push_back(x); // x 为插入的数据
2.3 下标访问元素
cout<< a[0] << endl; // 因为在 vector 中已经重载了下标运算符,
2.4 使用迭代器遍历元素
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int> coll;
int n, x, y;
cin>>n;
y = n;
while(n--)
{
cin>>x;
coll.push_back(x);
}
vector <int> :: iterator i;
for(i = coll.begin(); i!= coll.end(); i++)
cout<<*i<<endl;
return 0;
}
2.5 插入元素
coll.insert(coll.begin()+i, a); // a 为插入的数 插在第i+1个元素前面
2.6 删除元素
coll.erase(coll.begin+i); // 删除第i+1个数
2.7 删除区间
coll.erase(coll.begin()+i, coll.begin()+j); // 删除区间 [ i + 1,j]
coll.erase(coll.begin()+2, coll.begin()+5); // 删除区间 [ 3, 5]
coll.erase(coll.begin()+i, coll.end()-j); // 删除区间 [ i + 1, 倒数第 j + 1]
coll.erase(coll.begin()+2, coll.end()-3); // 删除区间 [ 3, 倒数第 3 + 1]
2.8 倒置
reverse(coll.begin(), coll.end());
2.9 排序(需要 algorithm 头文件)
sort(coll.begin(),coll.end());
默认是从小到大,如果需要从大到小可以自定义比较函数。
bool compare(const int &a, const int &b )
{
return a > b;
}
sort(coll.begin(), coll.end(), compare);
三、全部代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
//bool comp(const int &a, const int &b)
//{
// return a > b;
//}//从大到小排列
int main()
{
vector<int> a;
int n, x;
cin>>n;
for(int i = 0; i<n; i++)
{
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end());
//sort(a.begin(), a.end(), comp);
//int t;
//cin>>t;
//a.insert(a.begin()+3,t);//在第three个后加入t 在第i个后面加上t
//a.erase(a.begin()+2);//删除第3个 删除第i+1个
//a.erase(a.begin()+2,a.begin()+4);//闭区间[3,4] [i+1, j]
//reverse(a.begin(), a.end());
for(i = 0; i < n; i++)
cout << a[i] << ' ';
return 0;
}