将字符串向量映射到整数

时间:2014-10-04 07:07:39

标签: c++ string vector stl

我正在使用这些数据结构

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行:

  

[错误]请求count中的成员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))),这是非类型的   std::map<std::vector<std::basic_string<char> >, int>::mapped_type {aka int}

第2行:

  

错误的模板参数数量(1,应为2)

1 个答案:

答案 0 :(得分:1)

该行

if(hash[element].count()==0) // line 1

需要:

if(hash.count(element)==0) // line 1

该行

hash.insert(pair< <vector<string>,int>(element,1)); // line 2
// Remove the   ^^^ Extra <

需要:

hash.insert(pair<vector<string>,int>(element,1)); // line 2

或更好:

hash.emplace(element,1);