是這樣的可能,沒有運氣的任何地方找到它:C++比較變量,變量名
int numberA = 10;
int numberB = 20;
int numberC = 30;
if (some string == B){
int result = 5 + numberB;
}
編輯
是這樣的可能,沒有運氣的任何地方找到它:C++比較變量,變量名
int numberA = 10;
int numberB = 20;
int numberC = 30;
if (some string == B){
int result = 5 + numberB;
}
編輯
如果你不希望使用std::vector
,std::array
或數組,你可以使用std::map
文本名稱與變量關聯:
int numberA = 1;
int numberB = 2;
int numberC = 3;
std::map<std::string, int *> variable_names;
variable_names["numberA"] = &numberA;
variable_names["numberB"] = &numberB;
variable_names["numberC"] = &numberC;
//...
int * p_variable = variable_names[some_string];
*p_variable = 8;
通常優選使用std::vector
或std::array
並且可能使用std::list
作爲容器變量或值。
不是直接的,但你可以這樣做:
std::vector <int> number (3);
number[0] = 10;
number[1] = 20;
number[2] = 30;
for (n=0; n<3; n++){
int result = 5 + number[n]; //so for n=1, it will be 5 + number1 = 5 + 10...
}
請注意,有更簡單的方法來初始化矢量,但爲了清晰起見,保持結構與問題相同。我還必須稍微更改for
循環,因爲vector
從0開始。
不可以。就C++而言,變量名在運行時不存在。
這個概念被稱爲「數組」。 – Jodocus
使用數組.... – StoryTeller
請不要在人們已經回答後大量改變問題的性質。 – Steve