将变量传递给函数以引用数组

时间:2015-07-04 12:42:27

标签: c++ variables for-loop scope

我需要调用包含很多个案的函数。

我想传递一个可以引用不同数组的变量。

这个例子更清楚地说明了我想要实现的目标:

void bob(int debut, int fin, string flag){
     string arrayflag = "pfhistory_FR_" + flag;
     for (i = debut; i < fin; i++){
         std::cout  << arrayflag[i].DP << endl                          
     }
 };

2 个答案:

答案 0 :(得分:1)

如果你想要一个可以引用不同数组的变量,你需要一个2D数组。 2D数组可以被认为是数组数组,您可以使用变量索引数组。

答案 1 :(得分:1)

粗略地说C ++是一种静态绑定语言。这意味着在编译时解析对象,而不是运行时。因此,您尝试做的事情在C ++中是不可能的,但必须手动实现。像这样:

void bob(int debut, int fin, string flag){
     auto *arrayflag =
           flag == "1" ? prhistory_FR_1 :
           flag == "2" ? prhistory_FR_2 :
                         prhistory_FR_3;

     for (i = debut; i < fin; i++){
         std::cout  << arrayflag[i].DP << endl                          
     }
 };

但这有XY problem的所有标记。你可能会问一些完全不同的东西,除了你认为这种方法是你真正问题的答案。但事实并非如此。无论你想做什么,真正的答案很可能是别的。你只需要找出你真正想要的东西。