C++比较变量,变量名
问题描述:
是这样的可能,没有运气的任何地方找到它: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