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

How to initialize a multidimensional array in c++?

本文关键字:数组 初始化 c++      更新时间:2023-10-16

我想制作一个数组并为其设置值,就像这个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;等等,但我不知道该怎么做。提前感谢您的帮助:)。

写就足够了

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 };

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

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