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

How to declare multiple arrays with similar name in a for loop?

本文关键字:相似 数组 for 循环 声明      更新时间:2023-10-16

我想声明 32 个名称为 efficiency_module_cmp_%d_x的 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] ; 
}

提出可能的解决方案。

不能在运行时创建对象名称(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];