vector:
#include<vector> using namespace std; int main(){ return 0; }
构造一个动态数组
vector<T> vec //例如: vector<int>a //定义了一个存储整数的动态数组a
插入元素(末端)
//push_back() 添加创造好的元素,使用的是拷贝构造函数 //emplace_back() 构造参数列表来添加元素的方法,使用到是move函数 //例如: #include<vector> using namespace std; int main(){ vector<int>vec; //[] vec.push_back(1);//[1] vec.push_back(2);//[1,2] vec.push_back(3);//[1,2,3] return 0; }
删除元素(末端)
#include<vector> using namespace std; int main(){ vector<int>vec; //[] vec.push_back(1);//[1] vec.push_back(2);//[1,2] vec.push_back(3);//[1,2,3] vec.pop_back(); //[1,2] vec.pop_back(); //[1] return 0; }
清空(清空vector,并不清空开的内存)
//vector<int>v; vector<int>().swap(v);
size()
vec.size()//计算vec的元素个数 //例如: #include<vector> #include<cstdio> using namespace std; int main(){ vector<int>vec; //[] vec.push_back(1);//[1] vec.push_back(2);//[1,2] vec.push_back(3);//[1,2,3] for(int i=0;i<vec.size();i++){ printf("%d",vec[i]); } return 0; }
assign()函数
将一个容器中元素全部复制到另一个容器中。
void assign(string first,string last);//将first中的元素复制到last中
vector应用
用动态数组储存自定义数据
//结构体 struct Student{ string name;//名字 int age; //年龄 }; int main(){ vector<Student>class1;//班级 Student stu1,stu2; //学生1,学生2 stu1.name="xiaohong"; stu1.age=12; stu2.name="yuhaoran"; stu2.age=25; class1.push_back(stu1); class1.push_back(stu2); return 0; }
构造函数
int n=10; vector<int>vec(n,1);
二维动态数组
//vector<vector<int> >vec2 int n=5; vector<vector<int> >vec2; for(int i=0;i<n;i++){ vector<int>x(i+1,1); vec2.push_back(x); } for(int i=0;i<n;j++){ for(int j=0;j<vec2[i].size(); i++){ cout<< ve2[i][j] << " "; } cout << endl; }
二维vector的使用
#include<iostream> #include<vector> using namespace std; int main(){ vector<vector<int> >v2d; for(int i=0;i<5;i++){ v2d.push_back(vector<int>()); } for(int i=0;i<v2d.size();i++){ for(int j=0;j<=i;j++){ v2d[i].push_back((i+1)*(j+1)); } } for(int i=0;i<v2d.size();i++){ for(int j=0;j<v2d[i].size();j++){ cout<< i+1 << "*" << j+1 << "=" < \t } cout<<endl; } return 0; }