0
아래의 시험 문제를 풀려고하지만 문제가 있습니다. 반복자 및 일반 함수에 대한 시험 문제
두 반복기 성과T
형의 요소 타입의 객체T
obj
일부 시퀀스 취하는 C++ 함수find_elem
적는다. 은 (first
,last
) 범위의 첫 번째 항목 인obj
으로 이터레이터를 반환하고,obj
이 시퀀스에없는 경우 이터레이터를 마지막으로 반환합니다. (35 %)참고 :
first
&last
반드시 컨테이너의begin()
및end()
방법에 의해 반환되는 것과 동일하지 않습니다! 컨테이너가 일종의 시퀀스 (예 : 벡터,리스트, 등)이며 가장 먼저 가리키는 요소 앞에 오는 이 오는 요소를 가리키는 반복자임을 이라고 가정합니다. 은end()
의 결과 일 수 있으므로 마지막으로 참조를 취소하면 안됩니다.
여기 내 시도
template<typename Iter, typename Obj>
Iter find_element(Iter iter1, Iter iter2, Obj &obj){
for(p = iter1; p != iter2; p++){
if((*p) == obj){
return p;
}
return iter2;
}
}
이 시도가 정확입니까? 반환 유형이 함수에 적합합니까? 아니면 잘못된 생각을 갖고 있습니까?
감사합니다, 조건 나누기 경우, 자동으로 그 시점에서 반복자를 반환? 반환 할 때 iterator 특정 obj 가리키는 것이라고 가정합니다? – Sun
@Sun :'break'에서 루프가 종료되고'return iter1;'이 실행됩니다. 'iter1'의 값은 우리가 그 순간에 필요로하는 것과 정확히 일치합니다. – Vlad