我已经声明了一个在我的程序中使用的简单结构。当我在主程序中根据该结构创建变量时,我想根据我已经存储在变量中的名称来命名它。
这可能吗?
e.g。我的结构声明如下:
struct myGreatStruct{
int foo;
int fum;
}
然后在我的程序中,用户输入一个名称,该名称存储在名为someVariable的变量中
最后我需要使用该变量值来命名我的结构:
myGreatStruct someVariable;
答案 0 :(得分:3)
使用关联容器,例如std::unordered_map
示例:
#include <iostream>
#include <unordered_map>
int main(int argc, char *argv[]){
std::unordered_map<std::string, myGreatStruct> vars;
std::string var_name;
std::cout << "Input var name" << std::endl;
std::cin >> var_name;
vars[var_name].foo = 1; // using the name that the user gave
}