二维vector
vector<vector <int> > ivec(m ,vector<int>(n)); //m*n的二维vector
动态创建m*n的二维vector
方法一:
vector<vector <int> > ivec;
ivec.resize(m);
for(int i=0;i<m;i++) ivec[i].resize(n);
方法二:
vector<vector <int> > ivec;
ivec.resize(m,vector<int>(n));
动态创建二维数组a[m][n]
C语言版:
#include<malloc.h>
int **a=(int **)malloc(m*sizeof(int *));
for(int i=0;i<m;i++)
a[i]=(int *)malloc(n*sizeof(int));
C++版:
int **a=new int*[m];
for(int i=0;i<m;i++) a[i]=new int[n];
初始化二维数组
vector<vector <int> > ivec(m ,vector<int>(n,0));
//m*n的二维vector,所有元素为0
以上均为创建数组,对于已经创建好的数组初始化,使用resize
//注意下面这一行:vector<int后两个">"之间要有空格!否则会被认为是重载">>"
vector<vector <int> > ivec;//创建二维vector
ivec.resize(m);
for(int i=0;i<m;i++) ivec[i].resize(n,0); //确定矩阵大小为m*n,0为初始值
使用vector时,要记得自己使用的是指针还是数据。如果使用指针,一定要用new 分配内存空间,再将指针定义指向它,最后要记得delele。如果是数据则会自动分配内存,运行结束后自动收回,并不需要自己写删除内存的代码。