Graphisoft®

GSRootVersion: 1.0

FindFirstOf

목표 범위 내의 여러 값 중 1번째로 발생하거나 이항 술어가 지정한 요소들의 지정한 집합에 대해 지정한 의미로 동일한 여러 요소들 중 1번째로 발생한 것을 검색합니다.

template <class For1, class For2>
For1 FindFirstOf (
    For1                first1,
    For1                last1,
    For2                first2,
    For2                last2
);
template <class For1, class For2, class BinPred>
For1 FindFirstOf (
    For1                first1,
    For1                last1,
    For2                first2,
    For2                last2,
    BinPred             pred
);

Template 파라미터

For1
순방향 반복자입니다.
For2
순방향 반복자입니다.
BinPred
이항 술어(Binary predicate)입니다.

파라미터

first1
검색할 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
last1
검색할 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.
first2
일치될 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
last2
일치될 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.
pred
두 요소를 등가로 취하는 경우 만족할 조건을 정의하는 사용자 정의 술어 함수 객체입니다. 이항 술어는 2개의 인자를 취하며, 만족할 때 true를, 만족하지 않을 때 false를 리턴합니다.

리턴 값

지정된 시퀀스와 일치하거나 이항 술어가 지정한 의미에서 동일한 1번째 하위 시퀀스의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.

설명

FindFirstOf는 입력 반복자들의 범위를 통해 선형 검색을 수행한다는 점에서 Find와 비슷합니다. 차이점은 Find가 특정 값을 검색하는 반면, FindFirstOf는 여러 값들 중 일부를 검색한다는 것입니다. 구체적으로 FindFirstOf[first2, last2)의 요소들 중 일부가 범위 [first1, last1)에서 1번째로 발생하는 것을 검색합니다. (이 행동은 표준 C 라이브러리 함수 strpbrk를 생각나게 합니다) FindFirstOf의 2가지 버전은 동일함에 대하여 요소들을 비교하는 방법에 따라 다릅니다. 1번째 버전은 operator==를 사용하고, 2번째 버전은 임의의 사용자가 제공하는 술어 pred를 사용합니다. 1번째 버전은 [first2, last2)에서 일부 반복자 j에 대하여 *i == *j[first1, last1)의 1번째 반복자 i를 리턴합니다. 2번째 버전은 [first2, last2)에서 일부 반복자 j에 대하여 comp(*i, *j)true[first1, last1)의 1번쨰 반복자 i를 리턴합니다. 여느 때처럼, 두 버전은 last1을 리턴합니다. 만약 그러한 반복자가 존재하지 않으면 i를 리턴합니다.

참고사항

알고리즘