C++創(chuàng)建動(dòng)態(tài)二維數(shù)組

二維vector

vector<vector <int> > ivec(m ,vector<int>(n)); //m*n的二維vector

動(dòng)態(tài)創(chuàng)建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));

動(dòng)態(tài)創(chuàng)建二維數(shù)組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]; 

初始化二維數(shù)組

vector<vector <int> > ivec(m ,vector<int>(n,0));   
 //m*n的二維vector,所有元素為0

以上均為創(chuàng)建數(shù)組,對(duì)于已經(jīng)創(chuàng)建好的數(shù)組初始化,使用resize

//注意下面這一行:vector<int后兩個(gè)">"之間要有空格!否則會(huì)被認(rèn)為是重載">>" 
vector<vector <int> > ivec;//創(chuàng)建二維vector
ivec.resize(m);
for(int i=0;i<m;i++) ivec[i].resize(n,0);  //確定矩陣大小為m*n,0為初始值

使用vector時(shí),要記得自己使用的是指針還是數(shù)據(jù)。如果使用指針,一定要用new 分配內(nèi)存空間,再將指針定義指向它,最后要記得delele。如果是數(shù)據(jù)則會(huì)自動(dòng)分配內(nèi)存,運(yùn)行結(jié)束后自動(dòng)收回,并不需要自己寫刪除內(nèi)存的代碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,536評(píng)論 1 51
  • 指針是C語言中廣泛使用的一種數(shù)據(jù)類型。 運(yùn)用指針編程是C語言最主要的風(fēng)格之一。利用指針變量可以表示各種數(shù)據(jù)結(jié)構(gòu); ...
    朱森閱讀 3,473評(píng)論 3 44
  • 01 超哥高的妻子已經(jīng)不是第一次為他去找算命先生了,上上下下,好好壞壞,日子就這么混著過了。 可這次算命先生,一番...
    楊喜愛閱讀 3,432評(píng)論 13 204
  • 20160620 人和狼都在用殘酷攻擊殘酷 用殘忍報(bào)復(fù)殘忍,用狡猾抗擊狡猾。惡惡相抱 近朱者赤 近狼者勢必狠,從此...
    eternity5閱讀 230評(píng)論 0 0
  • Default 是一款掌上原型筆記,如果你對(duì)移動(dòng)產(chǎn)品有興趣,最好使用 Default 來畫你的原型App。 Def...
    hznil閱讀 1,404評(píng)論 0 1