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

sky*_*oor 3 c++ stl

我可以声明这样的地图吗?

map<string, vector<string>> mymap;
Run Code Online (Sandbox Code Playgroud)

我认为这是适用的.

但是,它没有显示出来.

我试过了

map<string, vector<string>*> mymap;
Run Code Online (Sandbox Code Playgroud)

然后就可以了

这是什么规则?

Jam*_*lis 17

你需要一个额外的空间:

map<string, vector<string> > mymap;
                          ^ see the extra space
Run Code Online (Sandbox Code Playgroud)

如果没有额外的空间,则会>>将其解析为右移位运算符.

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

  • g ++给出了这个很好的错误:`'>>'应该是嵌套模板参数列表中的'>' (2认同)

Ste*_*hen 9

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

但是,map<string, vector<string> >实际上是一个 multimap<string, string>.一个多重映射地图一键多个值.根据您的使用情况,它可能更方便或更有效.