Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在for循环中声明具有相似名称的多个数组?_C++_Arrays_For Loop_Floating Point_Char - Fatal编程技术网

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

C++ 如何在for循环中声明具有相似名称的多个数组?,c++,arrays,for-loop,floating-point,char,C++,Arrays,For Loop,Floating Point,Char,我想声明32个名为效率模块%d\ux的1d数组,其中%d从1变为16,效率模块%d\uy,%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] ;

我想声明32个名为效率模块%d\ux的1d数组,其中%d从1变为16,效率模块%d\uy,%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] ; 

}
char数组_name[100];
字符数组_name1[100];

对于(int i=0;i您不能在运行时创建对象的名称(C++是静态类型的)。相反,您可以创建数组的向量(或任何其他容器),并将数组推到容器的后面,如下所示:

#include <vector>
int main()
{
    std::vector<char*> vectorOfArrays;
    for (int i = 0; i < 16; i++) {
        vectorOfArrays.push_back(new char[10]);
    }
    return 0;
}
#包括
int main()
{
std::阵列向量;
对于(int i=0;i<16;i++){
数组向量。推回(新字符[10]);
}
返回0;
}

然后您可以像这样访问其中一个数组:
vectorOfArrays[3]/P>不能在C或C++运行时创建类型或对象的名称。为什么你认为你需要这样做?他可以在macro@Flip不是在运行时。
std::map
可能是一种解决方案。听起来您需要多维数组,或者更好的向量或贴图。谢谢,我可以使用上述解决方案完成我想要的任务。它很有效.