BinarySearch
정렬된 범위에 지정된 값과 동일한 요소가 있는지, 또는 이항 술어로 지정된 의미에서 동일한 요소가 있는지 여부를 테스트합니다.
template <class For, class T>
bool BinarySearch (
For first,
For last,
const T & value
);
template <class For, class T, class BinPred>
bool BinarySearch (
For first,
For last,
const T & value,
BinPred pred
);
Template 파라미터
- For
-
순방향 반복자(Forward iterator)입니다.
- T
-
T 타입 값입니다.
- BinPred
-
이항 술어(Binary predicate)입니다.
파라미터
- first
-
검색할 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
- last
-
검색할 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.
- value
-
요소 값과 일치해야 하거나 이항 술어로 지정된 요소 값으로 조건을 충족해야 하는 값입니다.
- pred
-
한 요소가 다른 요소보다 작은 의미를 정의하는 사용자 정의 술어 함수 객체입니다.
이항 술어는 2개의 인자를 가지며 이 조건을 충족하면 true를 리턴하고 충족하지 못하면 false를 리턴합니다.
리턴 값
만약 범위 안에서 동일한 요소를 찾거나 지정한 값과 동일한 요소를 찾으면 true입니다. 그 외에는 false입니다.
설명
BinarySearch는 이진 검색의 버전 중 하나입니다:
정렬된 범위 [first, last)에서 요소 value를 찾으려고 시도합니다.
만약 [first, last)에서 value와 동일한 요소가 존재하면 true를 리턴합니다. 만약 그러한 요소가 없다면 false를 리턴합니다.
BinarySearch의 1번째 버전은 비교를 위해 operator<를 사용하며, 2번째 버전은 술어 pred를 사용합니다.
구체적으로, 1번째 버전은 *i < value와 value < *i 모두 false일 경우
[first, last) 범위 안에 반복자 i가 존재할 경우에만 true를 리턴합니다.
두 번째 버전은 pred (*i, value)와 pred (value, *i) 모두 false일 경우
[first, last) 범위 안에 반복자 i가 존재할 경우에만 true를 리턴합니다.
참고사항
알고리즘