Search
주어진 시퀀스 안의 요소들과 비교하여 대상 범위 안에서 요소들과 동일하거나 이항 술어로 지정된 의미에서 동일한 요소들과 동일한 시퀀스가 처음 발견되는 것을 검색합니다.
template <class For1, class For2>
For1 Search (
For1 first1,
For1 last1,
For2 first2,
For2 last2
);
template <class For1, class For2, class BinPred>
For1 Search (
For1 first1,
For1 last1,
For2 first2,
For2 last2,
BinPred pred
);
Template 파라미터
- For1
-
순방향 반복자입니다.
- For2
-
순방향 반복자입니다.
- BinPred
-
이항 술어(Binary predicate)입니다.
파라미터
- first1
-
검색될 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
- last1
-
검색될 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.
- first2
-
일치시킬 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
- last2
-
일치시킬 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.
- pred
-
두 요소가 동등할 경우 충족되는 조건을 정의하는 사용자 정의 술어 함수 객체입니다.
이항 술어(binary predicate)는 2개의 인자를 취하며 만족할 때에는 true를, 만족하지 않을 때에는 false를 리턴합니다.
리턴 값
지정된 시퀀스와 일치하거나 이항 술어로 지정된 의미와 같은 1번째 시퀀스의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
설명
Search는 요소별로 비교할 때 [first2, last2)와 동일한 범위 [first1, last1) 내의 하위 시퀀스를 검색합니다.
이것은 그 하위 시퀀스의 시작을 가리키는 반복자를 리턴합니다. 만약 그러한 하위 시퀀스가 존재하지 않으면 last1을 리턴합니다.
Search의 2가지 버전들은 두 요소들이 동일한지 여부를 결정하는 방법에 따라 다릅니다.
1번째 버전은 operator==를 사용하고, 2번째 버전은 사용자가 제공한 술어 pred를 사용합니다.
Search의 1번째 버전은 범위 [first2, last2)의 모든 반복자 j에 대하여 *(i + (j - first2)) == *j인
범위 [first1, last1 - (last2 - first2))의 1번째 반복자 i를 리턴합니다.
Search의 2번째 버전은 범위 [first2, last2)의 모든 반복자 j에 대하여 pred(*(i + (j - first2)), *j)가 true인
범위 [first1, last1 - (last2 - first2))의 1번째 반복자 i를 리턴합니다.
이러한 조건들은 단순히 i로 시작하는 하위 범위의 모든 요소가 [first2, last2)의 해당 요소와 동일해야 한다는 것을 의미합니다.
참고사항
알고리즘