我有一个容器std::map<string,std::map<string,int>>
。在std :: map中插入std :: map
如何在这样的容器中插入数据?我是否需要将内部地图作为附加变量?该代码应该在MSVC 2010和XCode 4.2(Snow Leopard)下编译。
Snow Leopard(10.6)下的XCode 4.2是否支持这样的容器?
我有一个容器std::map<string,std::map<string,int>>
。在std :: map中插入std :: map
如何在这样的容器中插入数据?我是否需要将内部地图作为附加变量?该代码应该在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))
然后你可以像杰克斯回答那样访问它们。
没有必要我有一个临时地图,每当你使用'[]',如果元素不存在,它会自动创建,因此你不必插入任何临时地图(除非你需要插入已经填满的东西) – Jack
@Jack谢谢,我想这只是一种不同的做法。 –