我试图找到解决此问题的方法 http://codeforces.com/problemset/problem/159/A
为了找到解决方案,我想通过制作地图地图来呈现输入。 对于此输入,我的地图应如下所示:
以下是我的代码。
和我的作业代码:
// m[s1]=(ii(s2,t));
是错的
我的问题是如何分配到地图的地图?
#include<iostream>
#include <cstdio>
#include <map>
#include <set>
#include <string>
#include<vector>
using namespace std;
int main(){
typedef map<string, int> ii;
map<string, ii> m;
int n,d;
cin>>n>>d;
string s1,s2,t;
for(int i=0;i<n;i++)
{
cin>>s1>>s2>>t;
// m[s1]=(ii(s2,t));
}
return 0;
}
有人可以帮忙吗?
答案 0 :(得分:1)
你可以这样写:
m[s1][s2] = t;
我假设你的意思是int t;
而不是string t;
,因为地图中的最后一个类型是int
。
答案 1 :(得分:0)
您希望制作比ii
更具描述性的typedef,但具体来说,您只想在地图中添加新的键值对:
m[s1].insert(std::make_pair(s2, t));
或者,如果您想将其拆分以保持清晰:
ii& submap = m[s1];
submap[s2] = t;
或者,如果你可以使用C ++ 11,那么你在问题中表达了什么:
m[s1] = {{s2, t}};