#include#include using namespace std; void test(){ //创建一个vector容器,数组 vector v; //向容器中插入数据(尾插) v.push_back(10); v.push_back(20); v.push_back(30); v.push_back(40); //尾删 v.pop_back(); //10 20 30 //插入 第一个参数的迭代器 v.insert(v.begin(),100); //100 10 20 30 (在第一个位置插) v.insert(v.begin(),2,1000); //1000 1000 100 10 20 30(插两个1000) v.insert(v.begin()+1,2); //1000 2 1000 100 10 20 30(在第二个位置插) //删除 参数也是迭代器 v.erase(v.begin()); //10 20 30 v.erase(v.begin(),v.end()); //左闭右开,删除全部==v.clear(); vector v1; //若里面有10 20 30 40 //构造同时赋值 vector v2(v1); //v2: 10 20 30 40 vector v3(v1.begin()+1,v1.end()); //v3: 20 30 40(用区间赋值) vector v4(4,100); //v4: 100 100 100 100 (4个100) vector v5(4); //声明v5大小为4 内容默认为 0 0 0 0 cout< v5; 直接访问 v5[0] 会报错,除非访问前插入元素} //容量和大小 vector v1; //若里面有0 1 2 3 4 5 6 7 8 9 //v1.empty() 为真 代表容器为空 v1.capacity(); // v1容量:13 (系统开辟的,capacity>=size) v1.size(); //10 (v1里面有10个元素) // v1.resize(15); //0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 (默认填0) v1.resize(15,100); //0 1 2 3 4 5 6 7 8 9 100 100 100 100 100 v1.resize(5); //0 1 2 3 4 超出部分被删 //交换容器 vector v1; //里面有0 1 2 3 4 5 6 7 8 9 vector v2; //里面有10 9 8 7 6 5 4 3 2 1 v1.swap(v2); //v1 : 10 9 8 7 6 5 4 3 2 1 //v2 : 0 1 2 3 4 5 6 7 8 9 {扩展:巧用swap收缩内存 若v1中存10000个数。。。。 v1.capacity(); //13825 v1.size(); //10000 v1.resize(3); //缩小 v1.capacity(); //13825 仍然占内存。。。。。 v1.size(); //3 vector (v1).swap(v1); //******* v1.capacity(); //3 收缩内存 v1.size(); //3 } //遍历(个人感觉最好) //一维 for(int i=0;i > matrix; //matrix中已存入一些数了,这里随便举个例子 int rows = matrix.size(), columns = matrix[0].size(); vector > dp(rows, vector (columns)); for(int i=0;i 遍历另外的方法
//第一种遍历方式 //通过迭代器访问容器中的数据 vector::iterator itBegin = v.begin();//起始迭代器,指向容器中第一个元素 vector ::iterator itEnd = v.end();//结束迭代器,指向容器中最后一个元素的下一个位置 while(itBegin != itEnd) { cout<<*itBegin< ::iterator it=v.begin();it != v.end();it++){ cout<<*it<



