2dim阵列,具有不同大小的第二维度

2dim Array with different sized second dimensions

本文关键字:二维 阵列 2dim      更新时间:2023-10-16

在阵列中

int a[][5] = {{1},{1,2}};

第二维度的"大小"是多少?的值是多少

a[0][1] 

有吗?

谈论尺寸是否有意义,或者它是否因"行"而异?

这被认为是不良做法吗?

在您的代码中

int a[][5] = {{1},{1,2}};

第一维度的大小为2(因为外部{}内部有两个元素)并且第二维度的大小是5。初始化程序中未提及的元素被初始化为零。所以,你的代码相当于:

int a[][5] = {{1,0,0,0,0},{1,2,0,0,0}};

这是无效的。它甚至不会编译:

test.cc:1:9: error: declaration of ‘a’ as multidimensional array must have bounds for all dimensions except the first

当您对数组使用花括号初始化表示法时,您必须为数组的所有维度指定所有元素,因此这段代码只会给您带来编译时错误。

如果您想要一个不同大小的容器数组,可以考虑使用向量数组,甚至向量数组。要使用它们,只需执行#include <vector>即可。