vectorS的单个迭代器

时间:2014-05-05 09:32:10

标签: c++ vector stl iterator

是否有一种有效的方法可以在2个对象iterator的连接上进行单vector次迭代,就像它们是一个一样?

这两个向量当然包含相同的数据类型。

更新:

我想我应该详细介绍一下我的问题和背景。这可能会回答一些问题:

实际上我有一个属性存储该迭代器的最后一个位置,并且在一个方法中我开始从我在前一个调用中停止的最后一个位置进行迭代,该位置可能位于第一个向量中,也可能位于第二个向量中

1 个答案:

答案 0 :(得分:0)

这个解决方案怎么样?它可能不优雅,但我想它尊重标准。正确?

vector<Whatever>::iterator it = vectorA.begin();
bool loopOnVectorA = true;

while(true) {

  // My stuff here

  if (loopOnVectorA && it == vectorA.end())
  {
    it = vectorB.begin();
    loopOnVectorA = false;
  }
  else if (it == vectorB.end())
  {
    break;
  }
  else
  {
    varPtrIt++;
  }
}