2011-10-18 6 views
-3

그래서 목록에서 올바른 순서로 요소를 삽입하는 삽입 함수를 구현하는 중입니다.iterator 아무 이유없이 iterating입니다 C++

로 내 입력은 간다 : 나는이 목록의 시작 부분에 내 반복자 점을함으로써 시작하고 각 개체를 반복

J Y Z

:

b.insert('Z'); 
    b.insert('J'); 
    b.insert('Y'); 

과해야 출력으로 왜 그걸 입력 할 정확한 위치를 찾을 때까지. 나는 그 이유를 이해하지 못한다. 그러나 내가 반복으로 시작할 때, 그것은 루프에 들어가기 전에 한 지점 앞으로 뛰어 오른다.

class list < node<T>* >::iterator itr = bt->level().begin(); 

     cout << "itr now: " << (*itr)->getItem() << endl; 

     while (itr != bt->level().end()) { 
     cout << "itr now: " << (*itr)->getItem() << " and " << elem << endl; 

     // do a bunch of other stuff 
     ++itr; 
     } 

이 내 출력과 같아야합니다

itr now: Z 
itr now: Z and J 
itr now: J 
itr now: J and Y 

대신이 somone에이 문제를 일으키는 먹으 렴 일이 뭐죠 말해 줄 수

itr now: Z 
itr now: Z and J 
itr now: J 
itr now: Z and Y 

으로 나온다?

+3

문제를 [SSCCE] (http://sscce.org/)로 줄이십시오. 'elem'이란 무엇입니까? '//다른 것들을 잔뜩합니까? ' 두 번째 라인은 어떻게 다시 도달합니까? 이 코드는 이러한 중요한 질문에 대답하지 않습니다. – Mankarse

+0

@Mankarse는 OP에 복사/붙여 넣기하기에는 너무 많은 코드입니다. '//다른 것들을 다룬다 '는 항목은'itr-> getItem()'과 비교했을 때 어느 항목이 맞는 지 거의 확인하고 그것을'insert'로 그 영역에 삽입합니다. 루프에 들어가기 전에'J'를 인쇄하기 때문에 그 부분에 문제가 있다고 생각하지 않습니다.하지만 한번 입력하면'Z'가됩니다. – SNpn

+0

게시하지 않으면 도움을 줄 수 없습니다. 완전한 예. –

답변

0

전체 코드를 여기에 게시하십시오. 정렬 된 주문을 찾고 있다면 container에 요소를 삽입하고 트릭을 수행하는 표준 algorithm sort을 사용하십시오.

+0

im asking iterator가 루프에 들어갈 때 iterator가 앞으로 뛰어 오르는 이유는'while' 루프와'cout' 문 사이에 코드가 없다는 것입니다. 왜'cout' 문 아래의 코드가 인쇄 된 것에 영향을 미치는지 보지 못합니다 두 번째 시간에 목록의 시작 부분이 정확합니다. – SNpn

+6

@SNpn : 다른 사람에게 도움을 청할 때 규칙 1 : 정보가 필요하다고 말하면, 정보를 제공하십시오. 그렇지 않으면 모든 사람의 시간을 낭비하는 것입니다. – jalf

관련 문제