1

我有以下内容:

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

谢谢!

4

1 回答 1

5

i->first是一个tuple。因此你不能只是cout它。

请参阅访问 boost:: tuple 的成员以了解如何访问元组。

您可以i->second按原样使用int,因此您可以使用cout它。

于 2013-05-09T00:48:54.600 回答