【发布时间】:2021-03-11 18:36:08
【问题描述】:
例如,我有一个二维数组 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}
【问题讨论】:
-
好的,我想了很多,感谢您的澄清。但这就是你已经拥有的,不是吗?
-
不,我有二维数组。必须将存储在每个索引处的子数组放入一个新的数组变量(新的内存位置)中,并且这些子数组将使用 for 循环动态命名。无法弄清楚如何动态分配内存位置和名称。
-
变量名(和变量本身)不能在 C++ 中动态分配。有时,
std::map会在人们提出像您这样的请求时做他们想做的事。您可以使用字符串作为映射的键,并使用该键来检索动态分配的数组。 -
A是如何定义的?如果行的长度不同,那么它可能是int**或int*[]?那么你已经拥有了你想要的东西。显示一些代码将有助于澄清这一点。
标签: c++ arrays multidimensional-array dynamic-memory-allocation