我定义了地图
map <int,pair<int,int>> hmap;
如果有pair(2,pair(3,4))
如何获得2 3 4个值,itr->first
,itr->second
无法正常工作
答案 0 :(得分:2)
如果有
pair(2,pair(3,4))
如何获取2 3 4个值[从迭代器itr
到map<int,pair<int, int>>
]
我想
itr->first // 2
itr->second.first // 3
itr->second.second // 4
答案 1 :(得分:1)
这是一个使用迭代器和基于范围的for语句的演示程序。
#include <iostream>
#include <map>
int main()
{
std::map<int, std::pair<int, int>> hmap{ { 1, { 2, 3 } }, { 2, { 3, 4 } } };
for (auto it = hmap.begin(); it != hmap.end(); ++it)
{
std::cout << "{ " << it->first
<< ", { " << it->second.first
<< ", " << it->second.second
<< " } }\n";
}
std::cout << std::endl;
for (const auto &p : hmap)
{
std::cout << "{ " << p.first
<< ", { " << p.second.first
<< ", " << p.second.second
<< " } }\n";
}
std::cout << std::endl;
}
它的输出是
{ 1, { 2, 3 } }
{ 2, { 3, 4 } }
{ 1, { 2, 3 } }
{ 2, { 3, 4 } }