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

时间:2016-08-04 12:52:26

标签: c++ c++11

我想要一张使用

的地图
  • 密钥字符串
  • int OR value for value
像这样:

std::map<std::string, SOME TYPE> myMap;
myMap["first_key"]  = 10;
myMap["second_key"] = "stringValue";

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

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

1 个答案:

答案 0 :(得分: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";