動態創建二維數組

動態創建二維數組------使用vector不定長數組


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

動態創建m*n的二維vector
第一種:
vector<vector<int> > veclnt;
veclnt.resize(m);
for(int i = 0;i < m;i++)
      veclnt[i].resize(n);

第二種:
vector<vector<int> > veclnt;
veclnt.resize(m,vector<int>(n));

動態創建二維數組 a[m][n]
C語言(使用malloc)
#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++版(使用new創建)
#include<iostream>
using namespace std;

int **a = new int *[m];
for(int i = 0;i  i< m;i ++)
              a[i] = new int[n] ;
delete [] a;

#include<iostream>
#include<vector> 
using namespace std;

int main(){
	int m;//行數 
	int n;//列數
	
	while(cin >> m >> n) {
	/**************************************************************	
	//使用 new創建二維數組 a[m][] 
		int **a = new int *[m];
		for(int i = 0;i < m;i ++)
		         a[i] = new int [n];
		for(int i = 0 ;i < m;i ++)
		     for(int j = 0;j < n;j ++){
		     	cin>>a[i][j];
		     }
		     
		for(int i = 0;i < m;i ++)
		   for(int j = 0;j < n;j ++)
		       cout<<"a["<<i<<"]"<<"["<<j<<"]"<<" "<<a[i][j]<<endl;
		       
		delete [] a;
	 ************************************************************/   
	 
	 /***********************************************************
	 //使用 vector創建二維動態數組 veclnt[m][n]
	       
		vector< vector<int> > veclnt(m ,vector<int>(n));
		
		for(int i = 0;i < m;i ++)
			for(int j = 0;j < n;j ++){
				cin>>veclnt[i][j];
			 
			}	 
		for(int i = 0;i < m;i ++){
			for(int j = 0;j < n;j ++){
				 
				cout<<veclnt[i][j];
				if(j < n){
				cout<<" ";
				}
			}
			cout<<endl;
		}
	*************************************************************/
	
	/************************************************************ 
	//使用vector創建 veclnt[m][n]二維數組 
	vector<vector<int> > veclnt;
	veclnt.resize(m);
	for(int i = 0;i < m;i ++)
	    veclnt[i].resize(n);
	    
	for(int i = 0;i < m;i ++)
	    for(int j = 0;j < n;j ++){
	    	cin >> veclnt[i][j];
	    }
	
	for(int i = 0;i < m;i ++){
	    for(int j = 0;j < n;j ++){
	    	cout<<veclnt[i][j];
	    	if(j < n)
	    	{
	    		cout<<" ";
	    	}
	    }
	    cout<<endl;
	}
	*************************************************************/
	
	/************************************************************
	//使用vector創建二維數組 veclnt[m][n] 
	vector<vector<int> > veclnt;
	veclnt.resize(m,vector<int>(n));
	for(int i = 0;i < m;i ++)
	    for(int j = 0;j < n;j ++){
	    	cin >> veclnt[i][j];
	    }
	
	for(int i = 0;i < m;i ++){
	    for(int j = 0;j < n;j ++){
	    	cout<<veclnt[i][j];
	    	if(j < n)
	    	{
	    		cout<<" ";
	    	}
	    }
	    cout<<endl;
	 }
	 *************************************************************/
   }
   return 0;
}


發佈了44 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章