C++ 11在map <key,value>中为value(int和string)存储多种数据类型的最简单方法?

Joo*_*. P 5 c++ c++11

我想要一张使用的地图

  • 密钥的字符串
  • int OR字符串的值

像这样:

std::map<std::string, SOME TYPE> myMap;
myMap["first_key"]  = 10;
myMap["second_key"] = "stringValue";
Run Code Online (Sandbox Code Playgroud)

什么是SIMPLEST做这种事情的方式?

我正在寻找适用于c ++ 11的解决方案

Jar*_*d42 9

在c ++ 17中,您可以使用std::variant<int, std::string>,在此之前,您可以使用以下一个boost:

using IntOrString = std::variant<int, std::string>;
std::map<std::string, IntOrString> myMap;
myMap["first_key"]  = 10;
myMap["second_key"] = "stringValue";
Run Code Online (Sandbox Code Playgroud)