基本操作数 - >没有非指针类型的指针'

时间:2017-05-28 16:16:52

标签: c++ pointers

我有一张地图“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> >

如何解决这个问题?任何帮助将不胜感激,任何解释的帮助将非常感激。

1 个答案:

答案 0 :(得分:3)

虽然end返回一个迭代器(你知道该元素存在吗?取消引用->迭代器是UB)因此有一个重载的second运算符,该对的.成员又是一对而不是迭代器,这意味着您需要使用languages.find(c)->second.second.first

{{1}}