Kit*_*tet 1 c++ stdvector pugixml
我目前正在使用pugi xml,我经常使用这样的循环:
for (pugi::xml_node sth: root.child("name").children())
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
然后在某些时候我意识到我需要在WHICH迭代中保存信息,我找到了一些值,因为稍后需要在此循环之外.我可以在不添加计数器的情况下判断我正在进行哪次迭代吗?
此外,如果该对象是这样的矢量:
std::vector<type> vtr;
for (std::vector<type>::iterator it = vtr.begin(); it != vtr.end(); ++it)
{
//which iteration?
}
Run Code Online (Sandbox Code Playgroud)
在任何感兴趣的迭代器中,您都可以这样做
auto index = it - vtr.begin();
Run Code Online (Sandbox Code Playgroud)
那么vtr.begin()
将是索引0
,然后每个元素从那里递增.
或者你可以使用std::distance
.
auto index = std::distance(vtr.begin(), it)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66 次 |
最近记录: |