【发布时间】:2021-10-22 15:00:36
【问题描述】:
嘿,我是 C++ 新手,我正在尝试创建一个可以存储多种类型的地图:
map<sting, `auto`> test_map;
test_map["first elem"] = 1;
test_map["second elem"] = 'c';
这显然让我犯了一些错误。
我一直在网上寻找一些有趣的东西,但没有找到答案。也许我错过了一些 c++ 词汇。
我也会尝试一些关于任何类型的类至极商店,但我不知道它是否可以工作。
map<string, `my_class`> test_map;
map["first_elem"] = my_class("string");
map["first_elem"] = my_class(12);
感谢您的帮助!
【问题讨论】:
-
也许std::any 能帮到你?
-
“存储任何类型的某种类” 这些类已经存在:
std::variant、std::any。第一个接口更合理,但需要提前知道所有可能的类型。 -
也许
std::map不是解决您的问题的正确容器,不管它是什么? -
或
std::variant如果您限制自己支持的类型数量(如在 json 库中)。 -
std::map<:string>> stackoverflow.com/questions/50210104/…
标签: c++ dictionary