在C++中有一个包含不同类型键的映射

use*_*095 1 c++ types hashmap

我目前正在使用C++中的地图,并且有几个值是int和booleans,尽管它们中的大多数都是字符串.我知道在Java中我可以这样做:

std::map<string, Object*> mapvar;
Run Code Online (Sandbox Code Playgroud)

Object在C++中是否存在等价物?如果没有,有没有什么办法,我可以有正确的价值观是一个std::string,int或者bool

Bo *_*son 7

您可以拥有多个不同的地图,并在重载的函数中隐藏查找:

std::map<int, Object>           map_int;
std::map<std::string, Object>   map_string;

Object& lookup(int Key)
{ return map_int[Key]; }

Object& lookup(std::string Key)
{ return map_string[Key]; }
Run Code Online (Sandbox Code Playgroud)

现在你所有的查找都可以完成lookup(key).