c++ - 从C++中的变量构造变量名

标签 c++

我有很多不同大小的数组,所以据我所知它们不可能是多维数组,所以我将它们命名如下:

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/

相关文章:

c++ - 为什么 Windows Visual Studio 会损坏 C 样式字符串而 Linux 不会?

c++ - 指针随时间的改进/变化?

c# - 将 Windows 数据类型映射到 .NET

c++ - 设计一个带有两个指向嵌套对象的指针的迭代器

c++ - 构建第一个项目时出现 Qt 错误 [Windows]

c++ - 如何让程序等待命令执行

c++ - 如何使基类模板函数对派生类实例可见,而无需转换或复制签名?

c++ - 关于函数引用和线程的问题

c# - C# 应用程序是否可以与内核驱动程序通信?

c++ - 避免违反严格别名规则的最简单经验法则?