Вопрос

I have two containers, and I need to iterate over them both at the same time, in the same loop. I'm using boost foreach.

Like so:

  #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++;
  }

Where coords is a std::deque .

Can I also put targets into that foreach somehow? The doc suggests no.

Это было полезно?

Решение

You probably want to use a Boost Zip Iterator to traverse the two in parallel.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top