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