1

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

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

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

4

2 回答 2

3

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

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

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

于 2012-11-27T04:34:03.343 回答
0

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

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

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

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

然后您可以像在 Jacks answer 中一样访问它们。

于 2012-11-27T04:36:00.417 回答