我可以在STL的地图中使用矢量吗?

时间:2010-06-06 19:32:57

标签: c++ stl

我可以声明这样的地图

map<string, vector<string>> mymap;

我认为它适用。

然而,它没有显示。

我试过

map<string, vector<string>*> mymap;

然后就可以了

这是什么规则?

2 个答案:

答案 0 :(得分:17)

你需要一个额外的空间:

map<string, vector<string> > mymap;
                          ^ see the extra space

如果没有额外的空格,>>将被解析为右移位运算符。

规则已在C ++ 0x中修改,无需额外空间。一些编译器(例如,Visual C ++ 2008及更高版本)已经不需要额外的空间。

答案 1 :(得分:9)

你可以像詹姆斯提到的那样。愚蠢的c ++解析:)

然而,map<string, vector<string> >实际上是一个 multimap<string, string>multimap将键映射到多个值。根据您的使用情况,它可能更方便或更有效。