在std :: map中插入std :: map

时间:2012-11-27 04:28:25

标签: c++ visual-c++ stl xcode4.2

我有一个std::map<string,std::map<string,int>>的容器。

  1. 如何将数据插入此类容器?我是否必须将内部地图作为附加变量?代码应该在MSVC 2010和XCode 4.2(Snow Leopard)下编译。

  2. Snow Leopard(10.6)下的XCode 4.2是否支持这样的容器?

2 个答案:

答案 0 :(得分:3)

只需使用重载的[]运算符即可完成:

std::map<string,std::map<string,int> > data;
data["foo"]["bar"] = 10;

是的,Xcode 4.2支持它们,我个人在OSX下使用它们没有任何问题。

答案 1 :(得分:0)

作为一个简单的答案,您需要有一个临时地图:

std::map<string, int> tempMap;
std::string tempString;

然后,您需要在设置后将这些插入到上面的地图中。

tempMap.insert(std::pair<string, std::map<string, int>>(tempString, tempMap))

然后你就可以像杰克的回答一样访问它们。