I am trying to use the unordered_map in C++, such that, for the key I have an int, while for the value there is a pair of floats. But, I am not sure how to access the pair of values. I am just trying to make sense of this data structure. I know to access the elements we need an iterator of the same type as this unordered map declaration. I tried using iterator->second.first and iterator->second.second. Is this the correct way to do access elements?
typedef std::pair<float, float> Wkij; tr1::unordered_map<int, Wkij> sWeight; tr1::unordered_map<int, Wkij>:: iterator it; it->second.first // access the first element of the pair it->second.second // access the second element of the pair Thanks for your help and time.
unordered_mapis part of the C++11 standard , you can usestd::instead oftr1::std::get<0>(it->second), orstd::get<0>(std::get<1>(*it))(both givesit->second.first, which is perfectly valid)