迭代不断增长的列表

时间:2018-02-13 02:28:51

标签: c++ loops

如果只有一个n(x1,x2,x3,...,xn)列表,则可以轻松迭代列表中的所有唯一对,即(x1,x2), (x1,x3), ..., (x1,xn), (x2,x3), (x2,x4), ... ,(x2,xn),...,(x[n-1],xn)。作为一个实际示例,这可以是STL向量x,并且迭代

for (auto i=0; i<n; i++) {
   for (auto j=i+1, j<n; j++) {
      // Do something with x[i],x[j]
   }
}

我的问题:如果Do something部分可以通过添加一个甚至几个元素来增长向量x,该怎么办?例如,在评估(x1,x2)的循环后,新长度可能为n+1,并带有新元素x[n+1]。现在我也想在同一个循环中考虑对(x1,x[n+1]),(x2,x[n+1]),...,(xn,x[n+1])。这是可能的,如果是的话,怎么样?

我认为另外两个部分是:评估的顺序无关紧要(即,当我考虑成对x[n+1]时无关紧要)并且对的顺序无关紧要{ {1}}或(x[n+1],x1)

谢谢!

0 个答案:

没有答案