오늘 컨테이너에 일치하는 기호를 찾기 위해 작은 조건자를 작성했습니다.STL 알고리즘 및 const_iterators
하지만 문제가 있습니다 :이 클래스의 구성원 인 컨테이너에서 검색하여 클래스의 const 메서드 내부에서 std::find_if
호출에서이 조건자를 사용하고 싶습니다.
그러나 나는 std::find
도 std::find_if
도 const_iterators
에서 작동 할 수 없다는 것을 알아 챘습니다.
일부 C++ 참조를 확인했는데 std::find
또는 std::find_if
의 버전이 허용/반품하는 것 같습니다 (const_iterators
). 나는 왜 내가 본 것 때문에이 알고리즘이 반복자가 참조하는 객체를 수정할 수있는 방법이 없기 때문에 왜 그런지 이해할 수 없다. 여기
는 SGI 구현에서 std::find
를 기록하는 방법이다
는 범위 제 반복자 I를 반환 [제 마지막) 등 * i의 값 == . 그러한 반복자가없는 경우에 마지막으로 리턴합니다.
실제 오류는 무엇입니까? 샘플 코드를 게시 할 수 있습니까? 감사합니다 –
사실, 당신은 단지 설명서를 잘못 읽었습니다, 아래 Pavel의 대답을보십시오. 테스트하면 확실히 작동하는 것을 볼 수 있습니다. –
당신의 질문은 당신이 작동하지 않는 코드를 가지고 있음을 의미합니다 - 특별히 "그러나 나는 문제에 직면했습니다"- 실제로 당신은 단순히 큰 소리로 생각하고 있습니다. 나는 당신이 그것을 시도했다면이 질문을 축소했다. –