获取到 const map<char, int> 的迭代器

K. *_*res 2 c++ dictionary iterator

因此,我正在尝试获取一个映射到我作为函数的 const 引用传入的映射的迭代器。当我做这样的事情时,我的编译器会抱怨:

bool func(string s, const map<char, int>& m){
    std::map<char, int>::iterator it = m.begin();
    /*more code here...*/
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

错误信息是:

error: no viable conversion from 'const_iterator' (aka '__map_const_iterator<typename __base::const_iterator>') to 'std::map<char, int>::iterator'
  (aka '__map_iterator<typename __base::iterator>')
    std::map<char, int>::iterator it = m.begin();
Run Code Online (Sandbox Code Playgroud)

Nat*_*ica 5

这里的问题mconstsom.begin()返回一个const_iteratornot an iterator。您要么需要使用:

std::map<char, int>::const_iterator it = m.begin();
Run Code Online (Sandbox Code Playgroud)

或者为了简单使用auto,你有:

auto it = m.begin();
Run Code Online (Sandbox Code Playgroud)