如何在其中有一对的地图中访问

How to access in map having a pair inside it

我正在使用里面有一对的地图, 但无法弄清楚如何使用 map

的迭代器访问

我的地图声明

  map<ll,pair<ll,ll> > val;
  map<ll,pair<ll,ll> > ::iterator it;      

我用来访问插入值的是

   cout<<it->first<<" " <<it->second->first<<" " <<it->second->second<<endl;

但编译器显示此错误

error: base operand of '->' has non-pointer type 'std::pair<long long unsigned int, long long unsigned int>'|

使用.访问一对元素。

cout<<it->first<<" " <<it->second.first<<" " <<it->second.second<<endl;

使用->访问指针指向的元素,使用.访问成员变量。在这种情况下,map 是一个容器,pair 是一个结构,因此您必须使用 ..

访问两者的元素
cout << it->first << " " << it->second.first << " " << it->second.second << endl;

您还可以 return 将值配对。

map<ll,pair<ll,ll> > val;

auto [pair_first_element,pair_second_element]=val[key_value];