C ++我可以使用变量值作为Struct名称来声明Struct吗?

时间:2014-10-22 06:43:10

标签: c++ struct

我已经声明了一个在我的程序中使用的简单结构。当我在主程序中根据该结构创建变量时,我想根据我已经存储在变量中的名称来命名它。

这可能吗?

e.g。我的结构声明如下:

struct myGreatStruct{
int foo;
int fum;
}

然后在我的程序中,用户输入一个名称,该名称存储在名为someVariable的变量中

最后我需要使用该变量值来命名我的结构:

myGreatStruct someVariable;

1 个答案:

答案 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
}