如何打印地图索引?

时间:2013-12-31 21:44:46

标签: c++

我有一个循环

for (itr=addr->second.begin(); itr!=addr->second.end(); itr++)

如果我在地图中有10个条目,并且如果我想打印输入Im(如1,2,3,4..10),有没有办法打印出来而不使用另一个变量。感谢。

1 个答案:

答案 0 :(得分:1)

可以打印您所处位置的索引,但效率非常低:std::map<...>中的项目没有索引。但是,您可以将索引确定为距离开头的距离:

for (itr=addr->second.begin(); itr!=addr->second.end(); ++itr) {
    std::cout << (std::distance(addr->second.begin(), itr) + 1) << ','; // not recommended!
}

是的,是的,这是可能的,但肯定不是我会做的事情!我不记得曾经需要为std::map<...>中的对象建立索引。如果我必须将std::map<...>的值与索引结合起来,我会使用另一个变量或自定义迭代器来跟踪地图的迭代器和计数器。