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

C++ Can I declare a Struct using a variable value as the Struct name?

本文关键字:Struct 声明 可以使 我可以 变量值 C++      更新时间:2023-10-16

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

这可能吗?

例如,我的结构是这样声明的:

struct myGreatStruct{
int foo;
int fum;
}

然后在我的程序中,一个用户输入一个他们的名字,这个名字被存储在一个名为someVariable 的变量中

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

myGreatStruct someVariable;

使用关联容器,例如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
}