我有很多不同大小的数组,所以据我所知它们不可能是多维数组,所以我将它们命名如下:
arr1[]
arr2[]
arr3[]
arr4[]
...
现在我可以使用 for 循环遍历它们并访问它们吗...
for(int i=1; i<5; i++) {
for(int j=o; i<etc; j++) {
cout<<arr[i][[j]<<endl;
}
}
or cout<<arr+i<<endl;
现在这显然是在告诉编译器将 arr 和 i 加在一起,但这不是我想要的。我希望它打印 arr1、arr2 等。
我已经试过了,把点、逗号、斜杠等等。
最佳答案
不需要。您确实需要一个数组。更具体地说,您需要一个异构容器。
借助间接的魔力,您实际上可以在 C++ 级别使用同构容器来实现这些语义:
std::vector<std::vector<WhateverYourTypeIs>> v;
如果你真的只需要外部阵列中的五个,这就可以完成工作:
std::array<std::vector<WhateverYourTypeIs>, 5> a;
并将简化您的代码。
关于c++ - 从C++中的变量构造变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25998201/