使用代码:
#include <iostream>
#include <map>
#include <string>
int main()
{
std::map<int, std::map<std::string, int>> mm;
std::map<std::string, int>::iterator iter = mm.find(1);
}
我收到以下错误:
Class 'std::_Rb_tree_iterator<std::pair<const int,
std::map<std::string, int>>>' is not compatible with class
'std::map<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char>>, int>::iterator'
我还没有编译代码。 Clion提醒我,上面有一个错误。
答案 0 :(得分:9)
你只是使用了错误的iter
类型,它应该是:
std::map<int, std::map<std::string, int>>::iterator
但是,我建议使用auto
来避免此类错误:
auto iter = mm.find(1);