如何在for循环中声明具有相似名称的多个数组?

时间:2017-08-21 19:32:24

标签: c++ arrays for-loop floating-point char

我想声明名称为 efficiency_module_cmp_%d_x 的32个1d数组,%d从1到16, efficiency_module_cmp_%d_y ,%d从1到16。 我使用以下代码执行此操作但这不起作用。这有什么问题:

char array_name[100];
char array_name1[100];


for ( int i=0; i<16;i++)
{

    sprintf(array_name,"efficiency_module_cmp_%d_x",i+1); 
    float array_name[n] ; 
    sprintf(array_name1,"efficiency_module_cmp_%d_y",i+1); 
    float array_name1[n] ; 

}

建议可能的解决方案。

1 个答案:

答案 0 :(得分:1)

您无法在运行时创建对象的名称(C ++是静态类型的)。相反,您可以创建一个数组的向量(或任何其他容器),并将数组推送到容器的后面,如下所示:

#include <vector>
int main()
{
    std::vector<char*> vectorOfArrays;
    for (int i = 0; i < 16; i++) {
        vectorOfArrays.push_back(new char[10]);
    }
    return 0;
}

然后您就可以访问其中一个数组:vectorOfArrays[3];