2016-03-08 14 views
0

我有一系列數組,我在下面的一個大的if語句中引用了它。如果可能的話,我想間接引用它們嗎?C++間接分配數組值?

  if (m == 1) EleN[CorrPos] = S1N[ID]; 
    else if (m == 2) EleN[CorrPos] = S2N[ID]; 
    else if (m == 3) EleN[CorrPos] = S3N[ID]; 
    else if (m == 4) EleN[CorrPos] = S4N[ID]; 
    else if (m == 5) EleN[CorrPos] = S5N[ID]; 
    else if (m == 6) EleN[CorrPos] = S6N[ID]; 
    else if (m == 7) EleN[CorrPos] = S7N[ID]; 
    else if (m == 8) EleN[CorrPos] = S8N[ID]; 
    else if (m == 9) EleN[CorrPos] = S9N[ID]; 
    else if (m == 10) EleN[CorrPos] = S10N[ID]; 

是否有可能間接以某種方式間接調用它?

ELEN [CorrPos] = @ 「S」 + M + 「N [ID]」

+1

你能解釋一下你打算做多一點嗎?在C/C++中沒有@。什麼是CorrPos?通過一系列數組,你的意思是一個數組指針? – xvan

+0

什麼是「間接」? –

+0

對不起,CorrPos只是EleN的整數索引的名稱,沒什麼特別的。 –

回答

1

你可以使用一個指針數組的數組S,則可以簡單地做例如

EleN[CorrPos] = S_Array[m - 1][ID]; // -1 since array-indexes are zero-based 
+1

矢量或地圖也是選項。 –

+0

謝謝,難道我還不得不建立一個大的條件if語句來設置指向S1N,S2N等的指針嗎? –

+0

@NickJacobi不,你只是初始化'S_Array'(在我的例子中)一次。像'SomeType * S_Array [10] = {S1N,S2N,...}' –