读书人

stl map,小弟我已知某个元素的iterato

发布时间: 2012-03-31 13:13:26 作者: rapoo

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());

读书人网 >C++

热点推荐