C++二维数组

 

 

int m(3),n(2);
int pos7[3]={1,2,3}; //正确,声明时初始化,维数要么全确定(常量),要么最高维空由初始化列表反推,但元素类型(低维)必须确定
// int pos6[m]={1,2,3}; //编译错,变量大小的对象不能被初始化,必须是常量大小
//error: variable-sized object may not be initialized

int pos5[]={1,2};   //正确,一维数组的元素类型确定(int),最高维维数不定,维数由初始化列表反推,
int pos4[][2]={{1,2},{11,12},{21,22}};  //正确,二维数组的元素类型确定(int[2]),最高维维数不定,维数由初始化列表反推
// int pos3[m][n]={{1,2},{11,12},{21,22}}; //编译错,变量大小的对象不能被初始化,必须是常量大小
//error: variable-sized object may not be initialized

int pos2[3][2]={{1,2},{11,12},{21,22}};    //声明时整体初始化
for(int i(0);i<m;i++) {
    // pos2[i]={};  //编译错,C++数组不能整体赋值,只能声明时整体初始化,不像vector<int>
    //error: array type 'int [2]' is not assignable
}
std::vector<std::vector<int> > arr(3,std::vector<int>(2,0));
arr[0]={1,2};   //vector<int>可以整体赋值,使用初始化值列表
for(int &iele:arr[0])std::cout<<iele<<"\t";
std::cout<<"_\n"; //1       2       _

m=5;n=4;
int** pos=new int*[m];
for(int i(0);i<m;i++){
    pos[i]=new int[n];
}
for(int i(0);i<m;i++){
    for(int j(0);j<n;j++){
        std::cout<<pos[i][j]<<"\t";
    }
    std::cout<<"\n";
}
/*
0       1073741824      0       1073741824
0       1073741824      0       1073741824
0       1073741824      0       1073741824
0       1073741824      0       1073741824
0       1073741824      0       1073741824
*/
for(int i(0);i<m;i++){
    for(int j(0);j<n;j++){
        pos[i][j]=i*10+j;
    }
}
for(int i(0);i<m;i++){
    for(int j(0);j<n;j++){
        std::cout<<pos[i][j]<<"\t";
    }
    std::cout<<"\n";
}
/*
0       1       2       3
10      11      12      13
20      21      22      23
30      31      32      33
40      41      42      43
*/
//释放动态数组
for(int i(0);i<m;i++){
    delete []pos[i];
}
delete []pos;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值