有效地遍历向量

时间:2018-07-17 17:44:00

标签: c++ vector iterator

我想遍历自定义结构“ Edge”的向量。 我已经预先为属性权重对向量进行了排序。 有时我想停止迭代向量,计算其他东西。 当我再次遍历向量时,我想从最后访问的元素开始。

带整数的示例: 边:[0,1,2,3,4,5,6] 重复:0,1,2 打破功能并计算其他东西 重复:[3,4,5,6]

我考虑过保存vector :: iterator。 将第一个元素的指针更改为 通缉的元素,但我没有为此找到任何东西

谢谢。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

for(int i = 0; i < vec.size(); i++) {
     do_work(vec[i]);
     if(i == breakPoint) {
         do_calculations();
     }
}

breakPoint处的整数表示要停止的索引。除非,否则破坏功能真的很重要。然后,您可以使用静态的i,但这有可能给您带来比我认为值得的更多头痛的麻烦