我目前正在使用pugi xml,我经常使用这样的循环:
for (pugi::xml_node sth: root.child("name").children())
{
//do something
}
然后在某些时候我意识到我需要在WHICH迭代中保存信息,我找到了一些值,因为稍后将需要在此循环之外。如果不添加计数器,我可以告诉我的迭代次数吗?
此外,如果该对象是这样的矢量:
std::vector<type> vtr;
for (std::vector<type>::iterator it = vtr.begin(); it != vtr.end(); ++it)
{
//which iteration?
}
答案 0 :(得分:5)
在任何感兴趣的迭代器中,你都可以这样做
auto index = it - vtr.begin();
所以vtr.begin()
将是索引0
,然后每个元素从那里递增
或者您可以使用std::distance
。
auto index = std::distance(vtr.begin(), it)