2015-07-04 52 views
-2

我需要調用包含很多情況下的函數。傳遞一個變量來引用一個數組到

我想給它傳遞一個可以引用不同數組的變量。

此示例演示更清楚我想要實現:

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

你的問題仍然不清楚。請妥善解釋。 – therainmaker

回答

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。你可能會問一些完全不同的東西,除非你認爲這種方法是你真正的問題的答案。但事實並非如此。無論你想要做什麼,真正的答案很可能是別的。你只需要弄清楚你真正想問什麼。

+0

是的,但我有90例.. – jess