【发布时间】:2014-10-04 07:07:38
【问题描述】:
我正在使用这些数据结构
map < vector < string > , int > hash;
vector < string > element;
在我创建了元素向量之后。 当我尝试使用此数据结构时-
if(hash[element].count()==0) // line 1
hash.insert(pair< <vector<string>,int>(element,1)); // line 2
我收到以下错误-
第 1 行:
[Error] 请求
hash.std::map<_Key, _Tp, _Compare, _Alloc>::operator[]<std::vector<std::basic_string<char> >, int, std::less<std::vector<std::basic_string<char> > >, std::allocator<std::pair<const std::vector<std::basic_string<char> >, int> > >((*(const key_type*)(& element)))中的成员count,这是非类类型std::map<std::vector<std::basic_string<char> >, int>::mapped_type {aka int}
第 2 行:
模板参数的数量错误(1,应该是 2)
【问题讨论】:
-
切换参数:
map<int, vector<string>> hash;这意味着..整数将用作键..字符串向量将是该键的值。我怀疑您是否打算使用字符串向量作为键。如果你这样做了,那就完全无视我吧。 -
计算第 2 行的括号 - 有一个多余的左括号。
-
我认为你想要:
hash.insert(pair<vector<string>,int>(element,1));我同意它看起来像是一个非常不寻常的键。