在C++中迭代map <boost :: tuple <int,string>,int>

Tyr*_*ick 1 c++ boost iterator tuples map

我有以下内容:

map<boost::tuple<int, string>, int> edges;
edges[boost::make_tuple(1, "a")] = 1;
Run Code Online (Sandbox Code Playgroud)

一个简单的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;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Bil*_*ill 5

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

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

您可以使用i->secondint,因此您可以使用cout它.