1

我想创建一个 for 循环,它将用 c++ 中的数据填充一堆数组。现在为了节省空间,将来一旦添加了更多数组,我就有了 for 循环。用于演示的每个数组都称为 Array#(# 是一个数字) for 循环的要点是设置一个具有最大数组的常量,然后通过将 i 附加到数组名称的末尾来循环填充每个数组。

例如在伪代码中:

for (i = 1; i < numberofarrays; i++)  
{ fill (Array & i) with ("Array" & i & "-default.txt")}
4

2 回答 2

8

任何类型的代码都不可能生成变量名称。
(意味着不可能在运行时或编译时生成动态变量名)

可能的最佳解决方案是数组数组:

int Arrays[][];

调用Arrays[0]会给你第一个数组。

如果要在运行时确定数组的数量,则需要使用指针!

看起来像这样:

(int[])* Arrays = new (int[])[numberofarrays];

访问数组中的数组也是一样的!

另一种方法是使用vector来自std.

代码将如下所示:

#include<vector>

// More includes

// Optional
using namespace std;

// Somewhere in your code
vector<vector<int>> Arrays;

您仍然可以使用标准数组方法(Arrays[15][78]例如)访问元素

于 2013-08-09T13:10:05.043 回答
1

你真的不需要名字。您可以使用数组的 std::vector 。这不会开箱即用,请参阅使用数组向量的正确方法

另一种方法是拥有一个 std::map 数组。如果这是您真正想要的,您可以将名称作为键。您仍然必须使用与以前相同的解决方法才能将数组作为值。例如,请参阅字符数组作为 C++ 映射中的值。

于 2013-08-09T13:14:16.443 回答