C++标准模板库——vector

直接上代码

#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;
} 

运行结果:



猜你喜欢

转载自blog.csdn.net/lili_code/article/details/80740906