我想创建一个for循环,它将用c ++中的数据填充一堆数组。现在为了节省空间,将来再添加一个阵列,我就有了for循环。用于演示目的的每个数组称为Array#(#是一个数字)for循环的要点是设置一个具有最大数组的常量,然后通过将i附加到数组名称的末尾来遍历每个数组填充。
例如伪代码:
for (i = 1; i < numberofarrays; i++)
{ fill (Array & i) with ("Array" & i & "-default.txt")}
答案 0 :(得分:8)
无法通过任何类型的代码生成变量名称 (意味着无法在运行时或编译时生成动态变量名称)
可能的最佳解决方案是阵列数组:
int Arrays[][];
调用Arrays[0]
将为您提供第一个数组。
如果要在运行时确定数组的数量,则需要使用指针!
那看起来像那样:
(int[])* Arrays = new (int[])[numberofarrays];
访问数组中的数组也是一样的!
另一种方法是使用std
中的容器vector
。
代码看起来像这样:
#include<vector>
// More includes
// Optional
using namespace std;
// Somewhere in your code
vector<vector<int>> Arrays;
您仍然可以使用标准数组方法(Arrays[15][78]
例如。)
答案 1 :(得分:1)
你真的不需要这个名字。您可以使用std :: vector数组。这不是开箱即用的,请参阅Correct way to work with vector of arrays
另一种方法是使用std ::数组映射。您可以将名称作为键,如果这是您真正想要的。您仍然必须使用与以前相同的解决方法将数组作为值。例如,请参阅Character Array as a value in C++ map。