我有一个容器std::map<string,std::map<string,int>>
。
如何将数据插入到这样的容器中?我是否必须将内部地图作为附加变量?代码应在 MSVC 2010 和 XCode 4.2 (Snow Leopard) 下编译。
Snow Leopard(10.6)下的XCode 4.2是否支持这样的容器?
我有一个容器std::map<string,std::map<string,int>>
。
如何将数据插入到这样的容器中?我是否必须将内部地图作为附加变量?代码应在 MSVC 2010 和 XCode 4.2 (Snow Leopard) 下编译。
Snow Leopard(10.6)下的XCode 4.2是否支持这样的容器?
只需使用重载[]
运算符即可完成:
std::map<string,std::map<string,int> > data;
data["foo"]["bar"] = 10;
是的,Xcode 4.2 支持它们,我个人在 OSX 下使用它们没有问题。
作为一个简单的答案,您需要有一个临时地图:
std::map<string, int> tempMap;
std::string tempString;
然后,您需要在设置它们后将它们插入到上面的地图中。
tempMap.insert(std::pair<string, std::map<string, int>>(tempString, tempMap))
然后您可以像在 Jacks answer 中一样访问它们。