头文件为#include<vector>
创建对象 vector<int> a;
尖括号中为这个向量中的元素的数据类型
尾部插入数据a.push_back(x); x 为插入的数据
因为在vector中已经重载了下标运算符
使用迭代器访问元素
//使用下标访问元素 cout<<a[0]<<endl;
#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);
}
//for(int i = 0; i < y; i++)
//cout<<coll[i]<<endl;
vector <int> :: iterator i;
for(i = coll.begin(); i!= coll.end(); i++)
cout<<*i<<endl;
return 0;
}
插入元素 coll.insert(coll.begin()+i, a); a为插入的数 插在第i+1个元素前面
删除元素 coll.erase(coll.begin+i); 删除第i+1个数
vector 删除区间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];
倒置
reverse(coll.begin(), coll.end());排序(需要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;
}