首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

stl map,小弟我已知某个元素的iterator :itr,小弟我如何知道这个map遍历出来后这个元素是第几个输出出来的

2012-03-31 
stl map,我已知某个元素的iterator :itr,我怎么知道这个map遍历出来后这个元素是第几个输出出来的?map遍历

stl map,我已知某个元素的iterator :itr,我怎么知道这个map遍历出来后这个元素是第几个输出出来的?
map遍历类似这样:
map<***> m1;
for(itr = m1.begin();itr != end();itr++)
{
cout <<**;
}
我这样行不行?:int nIndex = itr - m1.begin();


[解决办法]
map如果支持迭代器相减就可以,但是得这样nIndex = itr - m1.begin()+1;
[解决办法]
int nIndex = std::distance(itr, m1.begin());
[解决办法]
设一个计数器:整形的;每次加1;你可以知道了;
[解决办法]

探讨
int nIndex = std::distance(itr, m1.begin());

热点排行