2017-02-12 13 views
1

Я использую карту с парой внутри него, , но не в состоянии понять, как получить доступ с итератором картыКак получить доступ в картах, имеющая пару внутри него

моей картой декларацией

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>'| 

ответ

2

Используйте . для доступа к элементам пары.

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

Использование -> для доступа к элементу, на который указывает указатель и . для доступа к переменной-члена. В этом случае map является контейнером и pair структурой, поэтому вам нужно получить доступ к элементам как с ..

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