打印 Map 的元素值时出错

error printing element values of map

本文关键字:出错 元素 Map 打印      更新时间:2023-10-16
map<char, int> counter;
//some code...
map<char, int>::iterator iter;
for (i = 0; i<26; i++) 
    {
    for (iter = counter[i].begin(); iter != counter[i].end(); iter++)  //error occurs
         {
         cout << (*iter).first << " - " << (*iter).second << endl;
         }
    }

我不确定此错误消息的含义:*错误:请求成员 "begin" in âcounter.std::map<_Key, _Tp , _Compare, _Alloc>::operator[] [_Key = char, _Tp = int, _Compare = std::less, _Alloc = std::分配器>, std::map<_Key, __Tp, _Compare, _Alloc>::mapped_type = int, std::map<_Key, _Tp, _Compare, _Alloc>::key_type = char]((* &((std::map::key_type)j))))â,属于非类* *类型 âstd::map::mapped_type {aka int}â*

计数器是一个映射而不是一个map数组,一个从begin()到end()的for循环就足够了,将你的for循环更改为下面的代码。

    map<char, int> counter;
   //some code...
    for (map<char, int>::iterator iter = counter.begin(); iter != counter[i].end(); ++iter)
    {
       cout << (*iter).first << " - " << (*iter).second << endl;
    }