我不想用std::multimap,因为我希望能够使用index随机取得value部分的值,于是便希望定义一个std::map<int, std::vector<int>>的类型,结果在vc6中死活编译不过。我写的测试代码为:std::map<int, std::vector<int>> test_map; 结果报错如下:
D:\me\document\VC6\test\test.cpp(34) : error C2146: syntax error : missing ',' before identifier 'test_map'
D:\me\document\VC6\test\test.cpp(34) : error C2065: 'test_map' : undeclared identifier
D:\me\document\VC6\test\test.cpp(34) : error C2143: syntax error : missing '>' before ';'
于是改写成如下代码:
typedef std::vector<int> IntVector;
typedef std::map<int, IntVector> IntVectorMap;
IntVectorMap test_map;
顺利编译通过 -_- 还真是邪门了。
注:std::map<int, std::vector<int>> test_map; 在vs2005下顺利编译通过。