vector容器的作用,在于你在储存一些数的时候,可以很方便的改变他的大小,利用下标可以同数组一样轻松的遍历,却比数组强的是:vector可以删去不用的元素,已达到我们获取前一个数值;
1 基本操作(vector包含在头文件<vector>,作为一种容器使用)
(1).声明对象——vector<T> variable;
(2).插入元素 *(尾部) ——variable.push_back(a);
无限制的添加元素,容器的大小随着需求改变;
*(任意位置)——variable.insert(variable.begain()+2);
(3).访问元素 *(下标访问)——
for(int i=0;i<a.size();i++) cout << a[i]<< " ";
*(迭代器访问)——
vector<int> ::iterator t;//迭代器类型的变量 for(t=a.begin();t!=a.end();t++) cout << *t << " ";
(4).删除元素 *(删除点)——veriable.erase(veriable.begin()+index)
删除index+1位置上的元素;
*(域删除)——veriable.erase(veriable.begin()+x,veriable.end()- y)
删除从x到y的区间;
(5).清空——vrriable.clear();
(6).获取最末尾的元素——veriable.back();
(7).删除最后一个元素——veriable.back();
(8).获取第一个元素——veriable.front();
二、排序方法;
升序(调用Sort()——包含在头文件<algorithm> )
sort(a.begin(),a.end(),);
降序(重写bool Comp(const & a ,const &b)函数)
bool Comp(const int &a,const int &b) { return a>b; } int main() { sort(a.begin(),a.end(),Comp); }
三、vector的二维性;
由于STL的容器都支持动态增长,可以随时使用vector.resize()来改变容器的容量,所以使用vector创建的数组就具有动态创建的特性。
1.声明——*vector<vector <int> >array(m) (m必不可少)
int main() { vector<vector <int> > array(4); vector<vector <int> > :: iterator oss; //二位数组的横向量; vector<int> :: iterator oaa;//二维数组的纵向量; for(oss = array.begin();oss!=array.end();oss++) { (*oss).resize(10); } cout << "Row" << " :" << array.size() << " " << "Column" << " :" << array[0].size() <<" "; //array表示行;下标和迭代器可以混用; for(oss = array.begin();oss!=array.end();oss++) { cout << '['; for(oaa = (*oss).begin();oaa!=(*oss).end();oaa++ ) { cout << (*oaa) << " "; } cout << ']'; cout << " "; } return 0; }
——*vector<int> array[m];
一维不具备vector容器的性质;
int main() { vector<int>ss[4]; for(int i = 0;i<4;i++) ss[i].resize(i); cout << "Row :" << sizeof(ss) <<" " << "Column :" << ss[0].size() << endl; cout << " "; for(int i=0;i<4;i++) { cout << "[ "; for(int j=0;j<ss[i].size();j++) { cout << " " << ss[i][j]; } cout << " ]"; cout << " " <<" "; } return 0; }