直接上代码
#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;
}
运行结果:
