2012-01-09 2 views
2

필자는 반복기 사용법에 익숙하지 않습니다. 필자는 아래 코드를 사용하여 요소가 목록에 있는지 여부를 확인하기 위해 반복자를 사용하여 목록의 모든 요소를 ​​구문 분석합니다.반복자 사용 - 보풀 경고

list<int> pendingRsp; 
list<int>::iterator it1; 

for(int i = 1; i <= 5; i++) 
    pendingRsp.push_back(i *10); 

for(it1 = pendingRsp.begin(); it1 != pendingRsp.end(); it1++) 
{ 
    if((*it1) == 50) 
    { 
     found = true; 
     break; 
    } 
} 

코드는 잘 작동하지만 나는 아래 린트 경고 점점 오전 :

정보 1702 : '! 연산자 ='! 연산자를 일반 기능 '연산자 모두는 = (const를 쌍 < < 1> 2 >> & <, CONST 쌍 < < 1> >> & < 2) '를 멤버 함수'목록 :: const_iterator를 :: 연산자! = (CONST const_iterator를 &) CONST "위 무엇

w 알리는 뜻? 연산자 오버로딩 구현과 목록과 반복자에서 연산자가 충돌합니까?

+0

질문과 관련하여 아무 것도하지 말고 for 루프 대신'std :: find'를 사용하십시오. –

+0

예 : std :: find가 더 좋습니다. 제안을 주셔서 감사합니다 – inquisitive

답변

3

정확하게 말하면 무엇을 의미합니까? 목록 반복기는 pair이고 pairoperator!= 함수를 갖지만 목록 반복기 클래스에도 고유 한 operator!= 함수가 있습니다. 두 연산자 모두 정확히 똑같은 일을하기 때문에 (첫 번째 요소에서 일치하는 두 쌍이 두 번째 요소와 일치하기 때문에) 경고를 무시해도 안전합니다.

+0

답장을 보내 주셔서 감사합니다 – inquisitive

+0

그래서 우리는 공개 상속이 아닌 구성을 사용합니다 :-) –