1.vector的构造
vector<int> v;//定义一个空的vector
vector<int> v2(4);//定义一个4个大小的vector,未说明的情况下全部初始化为0
vector<int> v3(4,6);//定义一个4个大小的vector,全部初始化为6
vector<int> v{1,2,3,4,5};//注意:没有等号哦
2.用at或者[ ]获取元素
vector<int>v{1,2,3,4,5};
cout<<v[1];//取v[1],即2
cout<<v.at(2);//取v[2],即3
3.push_back()
·erase删除元素,复杂度为O(n)
vector<int> v;
v.push_back(5);
v.push_back(5);
v.push_back(5);
v.push_back(5);
v.push_back(6);
for(auto x:v) cout<<x;//注意:输出的为x,此时输出55556
v.erase(v.begin());//删除第一个元素,此时输出5556
v.erase(--v.end());//删除最后一个元素,此时输出555
4.resize进行重置大小
v.resize(10);//让v预留10个元素的存储空间,且不赋值,默认为0;
5.获取第一个元素,获取最后一个元素
//获取第一个元素
cout<<v[0];
cout<<v.front();
cout<<*v.begin();
//获取最后一个元素
cout<<v.back();
cout<<v[v.size()-1];
cout<<*--v.end();
6.排序
第三个参数为比较器,不写默认为less()
vector<int> v{5,1,2,4,5,0,-1}
sort(v.begin(),v.end(),less<int>());//从小到大
sort(v.begin(),v.end(),greater<int>());//从大到小
for(auto x:v) cout<<v;
vector<int> v{5,1,2,4,5,0,-1}
for(int i=0;i<v.size();i++) cout<<v[i];//for循环
cout<<endl;
for(vector<int>::iterator it=v.begin();it!=v.end();it++)//迭代器循环
cout<<*it;
cout<<endl;
for(auto it=v.begin();it!=v.end();it++)//迭代器简化循环(cb在这个地方会报错)
cout<<*it;
cout<<endl;
for(auto x:v) cout<<x;
小程序操练1
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v(3);
v[0]=3;
v[1]=7;
v[2]=9;
//在最前面的元素前插入8
v.insert(v.begin(),8);//输出8379
//在第二个元素前插入1
v.insert(v.begin()+2,1);//输出83179
//在末尾插入新元素4
v.insert(v.end(),4);//输出831794
return 0;
}
小程序操练2
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v;
for(int i=0;i<10;i++)
v.push_back(i);//追加元素
//删除单个元素,从0开始计数,杀出第二个元素
v.erase(v.begin()+2);
for(vector<int>::iteratorit=v.begin();it!=v.end();it++)
{
cout<<*it<<" ";
//输出 0 1 3 4 5 6 7 8 9
}
cout<<endl;
//v.begin()是指0,v.begin()+2是把2删除
//删除一段元素,删除迭代器第一到第五区间的所有元素
v.erase(v.begin()+1,v.begin()+2);//删除的起始位置与最终位置的下一个元素
for(vector<int>::iterator it=v.begin();it!=v.end();it++)
{
cout<<*it<<" ";
//如果没有上面的那一步,只是删除了1,输出0 2 3 4 5 6 7 8 9
//有上面那一步,就输出0 3 4 5 6 7 8 9
}
cout<<endl;
//清空向量操作输出大小验证
v.clear();
cout<<v.size()<<<endl;
输出0
return 0;
}
“细数朝暮风花雪,差你这篇诗中月”