У меня есть контейнер std::map<string,std::map<string,int>>
,
Как мне вставить данные в такой контейнер? Нужно ли иметь внутреннюю карту в качестве дополнительной переменной или нет? Код должен компилироваться под MSVC 2010 и XCode 4.2 (Snow Leopard).
Поддерживает ли XCode 4.2 в Snow Leopard (10.6) такой контейнер?
Просто используйте перегруженный []
оператор и все готово:
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))
Тогда вы можете получить к ним доступ, как в ответе Джека.