如何创建带有整数的变量名称?

时间:2013-08-09 13:02:08

标签: c++

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

例如伪代码:

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

2 个答案:

答案 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