Graphisoft®

GSRootVersion: 1.0

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 < valuevalue < *i 모두 false일 경우 [first, last) 범위 안에 반복자 i가 존재할 경우에만 true를 리턴합니다. 두 번째 버전은 pred (*i, value)pred (value, *i) 모두 false일 경우 [first, last) 범위 안에 반복자 i가 존재할 경우에만 true를 리턴합니다.

참고사항

알고리즘