std :: list를 통해 이중 루프를 수행하여 각 요소 쌍을 처리하려고합니다. 그러나 두 번째 반복기를 초기화하는 데 문제가 있습니다. 내가 쓰고 싶습니다 코드는 다음과 같습니다증가하는 루프에서 std :: list iterator를 생성하는 방법
리스트 반복자는 랜덤 액세스하지 않기 때문에 작동하지 않습니다, 그래서 당신이 일을 할 수없는for(std::list<int>::iterator i = l.begin(); i != l.end(); ++i) {
for(std::list<int>::iterator j = i+1; j != l.end(); ++j) {
...
}
}
. 그러나 나는 깔끔한 대안을 찾는 데 어려움을 겪고있다. 컴파일러는 내가 희망을 가지고있는 std::list<int>::iterator j(i)++;
을 가지고 매우 행복해 보이지 않습니다. 내가 원하는 것을 얻으려면 for 루프의 구조에 잘 맞지 않는 약간의 어색함이 필요하다.
명백한 대안이 있습니다 (예를 들어 벡터를 사용합니다!)하지만 지금은 볼 수없는 합리적으로 깔끔한 방법이 있어야합니다. 사전에 어떤 도움
감사합니다 :) 위로 경기에서
'advance'는 반환 값이 없으므로 첫 번째 인수를 수정합니다. (나는 개인적으로 싫어한다.) 그렇다고'advance_copy' 함수를 작성하는 것은 쉽다. – GManNickG
@GMan : 수정 됨. 타이! – dirkgently
문제 없습니다. 나는 대체 대답으로 내 생각을 함께 가기로 결심했다. – GManNickG