我有一张地图“languages”和一张地图“it”的迭代器。
map < string, pair< pair<string,string>, pair<int,int> > > languages;
map < string, pair< pair<string,string>, pair<int,int> > >::iterator it;
我正在尝试找到某个元素的int对,假设c是我的地图键中已存在的字符串。
使用languages.find(c)->second->second->first;
我希望得到正确的迭代器指向地图的正确元素,虽然我在编译时遇到错误而非指针类型std::pair<std::pair<std::basic_string<char>, std::basic_string<char> >, std::pair<int, int> >
如何解决这个问题?任何帮助将不胜感激,任何解释的帮助将非常感激。
答案 0 :(得分:3)
虽然end
返回一个迭代器(你做知道该元素存在吗?取消引用->
迭代器是UB)因此有一个重载的second
运算符,该对的.
成员又是一对而不是迭代器,这意味着您需要使用languages.find(c)->second.second.first
:
{{1}}