首页 > 解决方案 > 如何在 C++ 中将二维数组转换为一维?

问题描述

例如,我有一个二维数组 A={{1,2,3}, {2,3},{5}}; 我想获取数组 A 中存在的所有行。我将数组的长度存储在变量“lenA”中,这里 lenA=3。另外我有一个数组 B,它具有 A 中每个子数组的长度。在这种情况下说 B={3,2,1}。参考我的示例数组 A,如何从一个二维数组(即 A)中动态获取 3 个子数组?因此,我会有类似的东西:

A1={1,2,3}
A2={2,3}
A3={5}

标签: c++arraysmultidimensional-arraydynamic-memory-allocation

解决方案


您不能在 C++ 中动态生成新标识符。您可以获得的最接近的是使用预处理器生成您的名称,并且根据定义,这是在编译之前完成的。

如果您已经有固定数量的命名数组指针,则可以动态分配它们。但是任何必须在运行时接受任意数量的行的解决方案都需要您使用数组索引之类的东西。

for (int i = 0; i < lenA; i++)
{
    // Do something with the row at A[i]
}

推荐阅读