2016-03-08 16 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,...}' –