2dim Array具有不同大小的第二维

时间:2012-02-28 20:18:46

标签: c++ arrays

在数组中

int a[][5] = {{1},{1,2}};
什么是"""第二维的大小和

的值
a[0][1] 

有?

说出尺寸是否有意义,或者它与" row"是否有所不同?到"行"?

这被认为是不好的做法吗?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

在您的代码中

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

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

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

答案 2 :(得分:0)

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

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