C++创建动态二维数组

二维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。如果是数据则会自动分配内存,运行结束后自动收回,并不需要自己写删除内存的代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,537评论 1 51
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,473评论 3 44
  • 01 超哥高的妻子已经不是第一次为他去找算命先生了,上上下下,好好坏坏,日子就这么混着过了。 可这次算命先生,一番...
    杨喜爱阅读 3,432评论 13 204
  • 20160620 人和狼都在用残酷攻击残酷 用残忍报复残忍,用狡猾抗击狡猾。恶恶相抱 近朱者赤 近狼者势必狠,从此...
    eternity5阅读 230评论 0 0
  • Default 是一款掌上原型笔记,如果你对移动产品有兴趣,最好使用 Default 来画你的原型App。 Def...
    hznil阅读 1,404评论 0 1