Можно ли перебрать несколько контейнеров с надстройкой foreach?

У меня есть два контейнера, и мне нужно перебирать их оба одновременно в одном цикле. Я использую boost foreach.

Вот так:

  #define foreach_ BOOST_FOREACH

struct Vertex
{
int x;
int y;
}

std::deque<Vertex>::iterator target_it = targets.begin();

// Put items in correct position
foreach_(Vertex v, coords)
{
v.y = (*target_it).y;
target_it++;
}

Где координаты — это std :: deque.

Могу ли я также поставить targets в это foreach каким-то образом? Док предлагает нет.

2

Решение

Вы, вероятно, хотите использовать Boost Zip Iterator чтобы пройти два параллельно.

2

Другие решения

Других решений пока нет …