Graphisoft®

GSRootVersion: 1.0

UpperBound

정렬된 범위 안에서 지정된 값보다 더 큰 값을 갖는 1번째 요소의 위치를 검색합니다. 여기서 순서 기준은 이항 술어에 의헤 지정될 수 있습니다.

template <class For, class T>
For UpperBound (
    For                 first,
    For                 last,
    const T &           value
);
template <class For, class T, class BinPred>
For UpperBound (
    For                 first,
    For                 last,
    const T &           value,
    BinPred             pred
);

Template 파라미터

For
순방향 반복자입니다.
T
T 타입 template 파라미터입니다.
BinPred
이항 술어(Binary predicate)입니다.

파라미터

first
검색할 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
last
검색할 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.
value
반복자가 가리키는 요소의 값에 의해 초과될 필요가 있는 정렬된 범위의 값이 리턴되었습니다.
pred
어떤 요소가 다른 요소보다 작다는 의미를 정의하는 사용자 정의 술어 함수 객체입니다. 이항 술어(binary predicate)는 2개의 인자들을 취하며 만족할 때에는 true를, 만족하지 않을 때에는 false를 리턴합니다.

리턴 값

정렬된 범위 안에서 지정된 값보다 더 큰 값을 갖는 1번째 요소의 위치를 설명하는 순방향 반복자입니다. 여기서 순서 기준은 이항 술어에 의해 지정될 수 있습니다.

설명

UpperBound는 이전 검색의 버전 중 하나입니다: 이것은 정렬된 범위 [first, last)에서 요소 value를 검색하려고 시도합니다. 구체적으로 이것은 순서를 깨뜨리지 않고 삽입될 수 있는 value가 있는 마지막 위치를 리턴합니다. UpperBound의 1번째 버전은 비교를 위해 operator<를 사용하고, 2번째 버전은 술어 pred를 사용합니다. UpperBound의 1번째 버전은 [first, i)의 모든 반복자 j에 대하여 value < *jfalse[first, last)의 가장 먼 반복자 i를 리턴합니다. UpperBound의 2번째 버전은 [first, i)의 모든 반복자 j에 대하여 pred(value, *j)false[first, last)의 가장 먼반복자 i를 리턴합니다.

참고사항

알고리즘