КАК ПРОЙТИ ДВА ВЕКТОРА В ОДНОЙ ПЕТЛЕ - PullRequest
0 голосов
/ 07 августа 2020

Предположим, у меня есть вектор a = [2 4 6 8 9] и вектор b = [1 5 1 8 7] Итак, как я могу пройти оба вектора в одном l oop например, предположим

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

for (vector :: iterator it1 = b. Begin (); it1! = B. End (); ++ it1; ++ it )

правильно ли это использовать?

1 Ответ

1 голос
/ 07 августа 2020

Вы можете использовать boost::combine или range::views::zip, чтобы получить диапазон для l oop для обоих.

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

Отсутствует библиотека я бы привел в порядок ваши определения

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

Если вы не знаете, имеют ли a и b одинаковые размеры, вам следует быть более осторожными

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