У меня есть два контейнера, и мне нужно перебирать их оба одновременно в одном цикле. Я использую 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
каким-то образом? Док предлагает нет.
Вы, вероятно, хотите использовать Boost Zip Iterator чтобы пройти два параллельно.
Других решений пока нет …