0
我可以编译这段代码,我从MSDN page有:unordered_map插入()错误
using namespace std
typedef std::unordered_map<char, int> Mymap;
Mymap c1;
c1.insert(Mymap::value_type('a', 1));
c1.insert(Mymap::value_type('b', 2));
c1.insert(Mymap::value_type('c', 3));
但是,当我更改为:
using namespace std
typedef std::unordered_map<int, vector<int> > Mymap;
Mymap c1;
c1.insert(Mymap::value_type(1, vector<int> v (1,1)));
c1.insert(Mymap::value_type(2, vector<int> v (1,2)));
c1.insert(Mymap::value_type(3, vector<int> v (1,3)));
我得到的错误(行号显然是关闭的片段):
myfile.cpp:121:29: error: expected primary-expression before ‘(’ token
myfile.cpp:121:45: error: expected primary-expression before ‘v’
myfile.cpp:122:32: error: expected primary-expression before ‘(’ token
myfile.cpp:122:48: error: expected primary-expression before ‘v’
myfile.cpp:123:32: error: expected primary-expression before ‘(’ token
myfile.cpp:123:48: error: expected primary-expression before ‘v’
哈希映射应该是“int => int列表”。列表使用一个数字进行初始化。
这里有什么问题?我需要使用value_type
以外的东西吗?
啊!我不是C++程序员,也复制了矢量代码,并假定你需要一个临时名称。 – 2012-03-02 03:12:07