偏移std :: list的迭代器位置

时间:2014-02-08 21:45:37

标签: c++ list stl iterator std

考虑以下不完整的代码段:

for (std::list<CollidableNode*>::iterator it = m_Enemies.begin(); it != m_Enemies.end();it++)
{
    //for current position+1 to end loop
    for (std::list<CollidableNode*>::iterator jt = it+1; jt != m_Enemies.end();jt++)
    {
        //do stuff
    }
} 

此代码产生明显的错误,但说明了我正在尝试做的事情,即:在嵌套循环中,将循环的起点设置在列表中的当前位置,加上一个位置,这样就不会重复检查是进行的。

注意事项是列表的大小非常动态,列表会检查要删除每个更新的项目,以及经常添加的新项目,以便删除速度比矢量更快。

是否可以将迭代器偏移到所需位置,如果是,我该怎么做呢?

提前致谢

1 个答案:

答案 0 :(得分:0)

您可能需要std::next