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 < *j가 false인 [first, last)의 가장 먼 반복자 i를 리턴합니다.
UpperBound의 2번째 버전은 [first, i)의 모든 반복자 j에 대하여 pred(value, *j)가 false인 [first, last)의 가장 먼반복자 i를 리턴합니다.
참고사항
알고리즘