SearchN
특정 값을 갖거나 또는 이항 술어에 의해 지정된 값과 관계를 갖는 지정된 수의 요소들의 범위 안에서 처음 발견되는 서브 시퀀스를 검색합니다.
template <class For, class T>
For SearchN (
For first,
For last,
USize range,
const T & value
);
template <class For, class T, class BinPred>
For SearchN (
For first,
For last,
USize range,
const T & value,
BinPred pred
);
Template 파라미터
- For
-
순방향 반복자입니다.
- T
-
T 타입 template 파라미터입니다.
- BinPred
-
이항 술어(Binary predicate)입니다.
파라미터
- first
-
검색될 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
- last
-
검색될 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.
- range
-
검색할 하위 시퀀스의 크기입니다.
- value
-
검색할 시퀀스의 요소들의 값입니다.
- pred
-
두 요소가 동등할 경우 충족되는 조건을 정의하는 사용자 정의 술어 함수 객체입니다.
이항 술어(binary predicate)는 2개의 인자를 취하며 만족할 때에는 true를, 만족하지 않을 때에는 false를 리턴합니다.
리턴 값
지정된 시퀀스와 일치하거나 이항 술어로 지정된 의미와 같은 1번째 시퀀스의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
설명
SearchN은 범위 [first, last)에서 Count 개의 연속적인 요소들의 하위 시퀀스를 검색합니다. 모든 값은 value와 같습니다.
이것은 하위 시퀀스의 시작을 가리키는 반복자를 리턴합니다. 만약 그러한 하위 시퀀스가 없다면 last를 리턴합니다.
SearchN의 2가지 버전들은 두 요소들이 동일한지 여부를 결정하는 방법에 따라 다릅니다.
1번째 버전은 operator==를 사용하고, 2번째 버전은 사용자가 제공한 술어 pred를 사용합니다.
SearchN의 1번째 버전은 범위 [i, i + count)의 모든 반복자 j에 대하여 *j == value인
범위 [first, last - count)의 1번째 반복자 i를 리턴합니다.
SearchN의 2번째 버전은 범위 [i, i + count)의 모든 반복자 j에 대하여 pred(*j, value)가 true인
범위 [first, last - count)의 1번째 반복자 i를 리턴합니다.
참고사항
알고리즘