如何在c ++中初始化多维数组?

时间:2015-10-29 20:15:19

标签: c++ multidimensional-array

我想创建一个数组并为其设置值double MyArray[][] = {{0.1,0.8},{0.4,0.6},{0.3,0.9}}。我不想这样做MyArray[0][0] = 0.1; MyArray[0,1] = 0.8; MyArray[1][0] = 0.4;,但我不知道如何做到这一点。在此先感谢任何帮助:)。

2 个答案:

答案 0 :(得分:3)

就足够了
double MyArray[][2] = {{0.1,0.8},{0.4,0.6},{0.3,0.9}};
                ^^^

二维数组是一维数组元素又是数组。创建数组时,应该知道其元素的大小。

您可以通过以下方式想象

typedef double T[2];

//..

T MyArray[] = {{0.1,0.8},{0.4,0.6},{0.3,0.9}};

至于这些陈述

MyArray[0][0] = 0.1; MyArray[0,1] = 0.8; MyArray[1][0] = 0.4;

然后如果你要像这样声明数组

#include <array>

//...

std::array<double, 2> MyArray[3];

你可以写

MyArray[0] = { 0.1, 0.8 };
MyArray[1] = { 0.4, 0.6 };
MyArray[2] = { 0.3, 0.9 };

答案 1 :(得分:2)

您至少需要告诉编译器内部维度是什么:

double MyArray[][2] = {{.1, .8},{.4, .6} /* etc... */ };