C ++ std :: map,值类型为std :: map

时间:2013-11-19 03:03:42

标签: c++ templates map stl

如何正确编写以下代码?

map< int, map< double, bool > > mymap;
mymap.insert( map< int, map< double, bool > >::value_type(50, map< double, bool >::value_type(0.1, false) ) );

2 个答案:

答案 0 :(得分:3)

这个怎么样:

typedef map<double, bool> innerType;
map<int, innerType> outer;
innerType inner;
inner.insert(pair<double, bool>(1.0, false));
outer.insert(pair<int, innerType>(1, inner));

答案 1 :(得分:2)

如果您可以使用C ++ 11(并且您的间距表明它不是):

mymap.insert({50, {{0.1,false}}});

如果没有C ++ 11,typedef是您的朋友,请参阅navono的回答。就个人而言,我只想用它:

mymap[50][0.1] = false;