C++标准库类模板vector

vector是C++标准库STL中的一个重要的类模板,相当于更健壮的更多附加能力的数组

使用vector前首先要包含头文件

#include<vector> 

1.vector的常用操作: 

vector < int > vector_1(size)    //创建一个数组vector_1,长度为size
	
vector<int> vector_2(vector_1)    //创建一个数组vector_2,并把vector_1中所有元素复制过去
	
vector<int> vector_3(vector_1.begin(),vector_1.begin()+N)
//创建一个数组vector_3,并把vector_1中前N个元素复制过去
	
vector < int > vector_4(size,num)    //创建一个数组vector_1,长度为size,初始化元素为num

vector.resize(size);    //重新设置数组大小为size
	
vector.front()   //返回数组首元素 
	
vector.back()    //返回数组尾元素 
	
vector.begin()   //获取数组头指针 
	
vector.end()     //获取数组尾指针 
	 
vector.size()    //返回数组的长度 
	
vector[i]        //访问数组的第i-1个元素

vector.insert(vector.begin()+N,elem);	//在数组的第N个元素后插入元素elem. 
	
vector.push_back(elem); //在数组的最后一个元素后插入一个元素elem. 

vector.erase(vector.begin()+M,vector.begin()+N);
//删除数组的第M个到第N个元素
	
	
vector.pop_back(); //删除数组的最后一个元素 
	
vector.clear();	//清空数组中的元素 
	
vector.empty();  //判断数组是否为空,若为空返回true,不为空返回false

例: 


/***
*Author:cyl
*Time:2019-3-1 22:00:45
*FUnction:Use of vector
***/
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdio>
#include <cstdlib>

#include<vector> 
using namespace std;
 
int main(){
 
	//vector是一个可存放任意类型数据的动态数组 
	//数据类型除了int类型还可为其他的类型 ,size可为一个常量或变量
	//初始化后向量integer中默认值为0; 
	int size = 10; 
	vector < int > integers(size); 
	
	//复制向量integer,复制为integers1 
	vector<int> integers1(integers);
	
	//复制向量integer前5个元素,复制为integers2
	vector<int> integers2(integers.begin(),integers.begin()+5);
	
	//创建 integers3长度为size,默认值为1 
	vector < int > integers3(size,1);
	
	integers.front();//获取首元素 
	integers.back();//获取尾元素 
	
	integers.begin();//获取头指针 
	integers.end(); //获取尾指针 
	 
	
	//获取向量 integers的长度 
	cout<<"integers的长度:"<<integers.size()<<endl;
	
	
	
	//通过下标读取元素 
	for(int i = 0;i<integers.size();i++){
		cout<<setw(4)<<integers[i];
	}
	
	//通过下标输入元素 
	for(int i = 0;i<integers.size();i++){
		cin>>integers[i];
	}
		
	
	//在 integers的第n个元素后插入元素123. 
	int n = 1; 
	integers.insert(integers.begin()+n,123);
	
	//在integers的最后一个元素后插入一个元素 123. 
	integers.push_back(123); 
	
	//删除integers的第m个到第n个元素 (第1个到第3个) 
	int m = 1;
	n = 3; 
	integers.erase(integers.begin()+m,integers.begin()+n);
	
	//删除integers的最后一个元素 
	integers.pop_back(); 
	
	
	//清空 integers中的元素 
	integers.clear();
	
	//返回integers是否为空,若为空返回1,不为空返回0 
	integers.empty();  
	
	return 0;
}

2.使用vector 创建二维数组

vector< vector<int> > matrix_vector(SIZE_ROW, vector<int> (SIZE_COL));

//创建一个二维数组,行数为SIZE_ROW,列数为SIZE_COL.
/***
*Author:cyl
*Time:2019-3-14 22:00:45
*FUnction:Use of 2d vector
***/
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cstdio>
#include <cstdlib>

#include <vector>
using namespace std;
int main(){
	
	//创建一个3行3列数组 
	vector< vector<int> > v2d(3, vector<int> (3));
	
	//赋值 
	for(int i = 0;i<v2d.size();i++){
		for(int j = 0;j<v2d[0].size();j++){
			v2d[i][j] = i*v2d[0].size()+j;
		}
	}
	
	//输出 
	for(int i = 0;i<v2d.size();i++){
		for(int j = 0;j<v2d[0].size();j++){
			cout<<setw(5)<<v2d[i][j];
		}
		cout<<endl;
	}
	cout<<endl<<endl;
	
	//将二维数组重新设置行列数 
	//先重新设置行数再重新设置列数 
	v2d.resize(8);
	for(int i = 0;i<v2d.size();i++){
		v2d[i].resize(8);
	}
	
	//赋值 
	for(int i = 0;i<v2d.size();i++){
		for(int j = 0;j<v2d[0].size();j++){
			v2d[i][j] = i*v2d[0].size()+j;
		}
	}
	
	//输出 
	for(int i = 0;i<v2d.size();i++){
		for(int j = 0;j<v2d[0].size();j++){
			cout<<setw(5)<<v2d[i][j];
		}
		cout<<endl;
	}
	
	return 0; 
}
原文地址:https://www.cnblogs.com/mydrizzle/p/10651241.html