【问题标题】:Passing a variable to function for reference an array into将变量传递给函数以将数组引用到
【发布时间】:2015-07-04 12:42:27
【问题描述】:

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

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

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

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                          
     }
 };

【问题讨论】:

  • 你的问题还不清楚。请正确解释。

标签: c++ variables for-loop scope


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    粗略地说,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 的所有标记。您可能会问一些完全不同的问题,只是您认为这种方法是您真正问题的答案。但事实并非如此。无论你想做什么,真正的答案很可能是别的东西。你只需要弄清楚你真正在问什么。

    【讨论】:

      猜你喜欢
      • 2020-07-28
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 2017-09-12
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多