【发布时间】:2015-02-01 13:41:04
【问题描述】:
我有一个map,其中pair<int, int> 作为键,第三个整数作为值。如何遍历地图的键以打印它们?我的示例代码粘贴在下面:
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
int main ()
{
map <pair<int, int>, int> my_map;
pair <int, int> my_pair;
my_pair = make_pair(1, 2);
my_map[my_pair] = 3;
// My attempt on iteration
for(map<pair<int,int>,int>::iterator it = my_map.begin(); it != my_map.end(); ++it) {
cout << it->first << "\n";
}
return 0;
}
我必须如何修改cout 行,才能正常工作?
【问题讨论】:
-
你想做什么?
-
您的问题是什么? (顺便说一句:
ostream&, pair<X,Y>没有过载。)在打印it->first.first时有效:coliru.stacked-crooked.com/a/686ef9dc8e2f05c0 -
@VladfromMoscow:我想遍历键并打印它们。
-
顺便说一句,range-for 会更好:
for(auto&& x : my_map) cout << x.first.first << ' ' << x.first.second << '\n';
标签: c++ dictionary iterator output stdmap