2013-06-23 11 views
2

두 개의 컨테이너가 있으며 같은 루프에서 동시에 둘 다 반복해야합니다. 나는 foreach를 사용하고있다. 그래서 같이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++; 
    } 

.

어떻게 든 foreachtargets을 넣을 수 있습니까? 의사는 아니오를 제안합니다.

답변

2

두 개를 병렬로 통과하려면 Boost Zip Iterator을 사용하는 것이 좋습니다.

+0

어쩌면 ... 내 원본 코드보다 더 추한 것 같습니다. – BeeBand

+1

@BeeBand : Boost foreach와 병행하여 두 컨테이너를 병행하려면이 방법을 사용하는 것이 좋습니다. 그게 가치있는 일을 위해서 : 나는 동의한다. - 나는 오래 전에이 정확한 문제 때문에 부분적으로 실제 코드에 대해 Boost foreach를 사용하지 않기로 결정했다. –