动态创建二维数组

动态创建二维数组------使用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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值