为什么不能在 C++ 中初始化二维数组的单行?

问题描述 投票:0回答:1

考虑一个二维数组(第一个维度有一个编译或运行时常量,第二个维度有一个编译时间常量)。例如

int arr[10][3];
int arr[n][3];

为什么不能做这样的事情:

arr[0] = {1,2,3,4};
arr[n-1] = {1,2,3,4};

这是 C++ 标准选择还是根本不需要此功能/我错过了做这样的事情的方法吗?

c++ arrays
1个回答
0
投票

由于多种原因这是不可能的。主要是因为语法不允许。但可能是因为这是一个不寻常的需求。

你可以足够接近:

int arr[10][5] =
{
    {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {1,2,3,4,5}, {0}
};

从技术上讲,您不需要指定任何未归零的东西:

int arr[10][5] =
{
    {}, {}, {}, {}, {}, {}, {}, {}, {1,2,3,4,5}
};
© www.soinside.com 2019 - 2024. All rights reserved.