我有以下内容:
map<boost::tuple<int, string>, int> edges;
edges[boost::make_tuple(1, "a")] = 1;
一个简单的cout << edges[boost::make_tuple(1, "a")] << endl;
确认它是1;
我如何迭代这个?以下似乎不起作用:
typedef map<boost::tuple<int, string>, int>::iterator it_type;
for(it_type i = edges.begin(); i != edges.end(); i++) {
cout << i->first << endl;
}
谢谢!
答案 0 :(得分:5)
i->first
是tuple
。因此,你不能只cout
它。
请参阅accessing members of boost:: tuple了解如何访问元组。
您可以使用i->second
,因为它是int
,因此您可以使用cout
来使用它。