STL专题—vector
定义: 向量 / 变长数组
如何使用:#include<vector>
using namespace std;
如何定义:1.vector< typename > name;
typename可以是任意基本类型,例如int、double、char、结构体等,也可以是STL标准容器,例如vector、set、queue 等。
注: 当typename是STL标准容器时, >>加空格vector<vector<int> > name;
2.vector数组的定义:vector<int> v[10];
v[i]即是一个vector容器
如何访问元素:
1.通过下标访问
vector<int> v;
for(int i=1;i<5;i++){
v.push_back(i);
}
printf("%d %d",v[0],v[1]);
2.通过迭代器访问
vector<int >::iterator it//利用*it访问
vector<int> v;
for(int i=1;i<5;i++){
v.push_back(i);
}
it=v.begin();//取v的首元素的地址
for(int i=0;i<4;i++){
printf("%d ",*(it+i));
}
/*
注:v.bgin() 取首元素的地址
v.end() 取尾元素地址的下一个地址
*/
/*另一种写法:*/
for(vector<int>::iterator it=v.begin();it!=end();it++){
printf("%d",*it);
}
常用函数:
1.push_back(x):vector尾部添加一个元素x
vector<int> v;
for(int i=1;i<5;i++){
v.push_back(i);
}
- pop_back():删除vector尾部元素
vector<int> v;
for(int i=1;i<5;i++){
v.push_back(i);
}
v.pop_back();//删除尾元素4
3.size():返回vector中元素的个数
vector<int> v;
for(int i=1;i<5;i++){
v.push_back(i);
}
printf("%d",v.size());
4.clear():清空vector元素
5.insert ( it , x ) : 向vector的任意迭代器it处插入一个元素x
vector<int> v;
for(int i=1;i<5;i++){
v.push_back(i);
}
vector<int>::iterator it=v.begin();
v.insert(it+1,8);//v[1]处插入8
6.erase ( it ) : 删除迭代器it处的元素
vector<int> v;
for(int i=1;i<5;i++){
v.push_back(i);
}
vector<int>::iterator it=v.begin();
v.erase(it+3);//删除v[3]
erase ( first, last ) : 删除迭代器first到last区间(不包含last)内元素
vector<int> v;
for(int i=1;i<5;i++){
v.push_back(i);
}
vector<int>::iterator it=v.begin();
v.erase(it,it+3);//删除v[0] v[1] v[2]