直接上代码
#include<cstdio> #include<vector> using namespace std; int main(){ vector<int> student; //变长数组 vector<vector<int> > teacher; //在typename也是一个vector时的情况下,> >之间需要空格 防止被视为移位操作,导致编译错误 //两个维都可以变长的二维数组 vector<int> vi[100]; //表示一维已经固定为100,另一维是可变长的 //push_back(x) 表示在vector后面添加一个元素x for(int i=1;i<=3;i++){ student.push_back(i); } for(int i=0;i<3;i++){ //通过下标访问 printf("%d",student[i]); } printf("\n原始size %d\n\n",student.size()); vector<int>::iterator it = student.begin(); for(int i=0;i<3;i++){ //通过迭代器访问 printf("%d ",*(it+i)); } //pop_back() 可以删除vector的尾元素 student.pop_back(); printf("\n删除尾元素后 %d\n",student.size()); //clear()为清空vector student.clear(); printf("\n清空后 %d\n",student.size()); for(int i=1;i<=3;i++){ student.push_back(i); } //insert函数可以在任意位置插入一个数 student.insert(student.begin()+1,-1); printf("\n插入数据\n"); for(int i=0;i<student.size();i++){ printf("%d ",student[i]); } //erase() 删除单个元素或者删除一个区间内的元素 删除区间的话为左闭右开 student.erase(student.begin()+2); printf("\n删除vi[2] "); for(int i=0;i<student.size();i++){ printf("%d ", student[i]); } printf("\n删除vi[1]到vi[3] "); student.erase(student.begin()+1,student.begin()+3); //记住 左闭右开 for(int i=0;i<student.size();i++){ printf("%d ", student[i]); } //student.end(); //表示尾元素地址的下一个地址 return 0; }
运行结果: