我希望能够输入已存在变量的名称,然后在函数中使用该变量。有没有办法做到这一点?
例如,我的代码看起来像这样:
int a = 1;
int b = 2;
char variableName;
std::cin >> variableName;
有没有办法可以输入" a"作为variableName,然后在函数中使用变量a。
答案 0 :(得分:4)
作为一种编译语言,C ++不支持对变量名的运行时访问 - 基本上,在编译之后,变量名称消失了,生成的可执行文件不再知道它们了。
所以你无法访问它们的运行时间。
答案 1 :(得分:1)
不,这是不可能的。你可以做的是你可以使用指针。指针最适合用于动态对象创建和传递到函数中。
有关指针的更多信息可以研究here
答案 2 :(得分:1)
不,没有具体的方法可以做到这一点,因为C ++不支持对这些名称的运行时访问,但您可以使用std::unordered_map
实现类似的行为,如下所示:
std::unordered_map<std::string, int> variables;
variables["a"] = 1;
variables["b"] = 2;
std::string variableName;
std::cin >> variableName;
// Check to see if 'variableName' exists in the map, and then
// access it by index for whatever you want.