【问题标题】:HOW TO TRAVERSE TWO VECTORS IN A SINGLE LOOP如何在一个循环中遍历两个向量
【发布时间】:2020-08-07 07:29:49
【问题描述】:

假设我有一个向量 a=[2 4 6 8 9] 和一个向量 b=[1 5 1 8 7] 那么我如何像假设一样在一个循环中遍历两个向量

vector::iterator it=a.begin();

for(vector :: iterator it1= b.begin(); it1 != b.end(); ++it1;++it)

so的使用方法正确吗?

【问题讨论】:

标签: c++ loops vector c++14 traversal


【解决方案1】:

您可以使用 boost::combinerange::views::zip 在两者上进行 range-for 循环。

for (auto & [fromA, fromB] : boost::combine(a, b))

没有这样的库函数,我会整理你的定义

for(auto it = a.begin(), it1 = b.begin(); it1 != b.end(); ++it1,++it)

如果你不知道ab 是不是一样大,你要多加小心

for(auto it = a.begin(), it1 = b.begin(); it != a.end() && it1 != b.end(); ++it1,++it)

【讨论】:

    【解决方案2】:

    要在一个循环中遍历两个向量,这两个向量必须具有相同的大小 如果两个向量是 vect1 & vect2 然后 vect1.size()==vect2.size() 所以要遍历 for(auto i=vect1.begin();i

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 2014-03-26
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 2012-01-22
      相关资源
      最近更新 更多