迭代map <boost :: tuple <int,string =“”>,int&gt;在C ++中</boost :: tuple <int,>

时间:2013-05-09 00:45:34

标签: c++ boost map iterator tuples

我有以下内容:

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;
}

谢谢!

1 个答案:

答案 0 :(得分:5)

i->firsttuple。因此,你不能只cout它。

请参阅accessing members of boost:: tuple了解如何访问元组。

您可以使用i->second,因为它是int,因此您可以使用cout来使用它。