Graphisoft®

GSRootVersion: 1.0

LexicographicalCompare

두 시퀀스 간에 요소 별로 비교하여 두 시퀀스 중 어느 것이 더 작은지 확인합니다.

template <class In1, class In2, class BinPred>
bool LexicographicalCompare (
    In1                 first1,
    In1                 last1,
    In2                 first2,
    In2                 last2,
    BinPred             cmp
);
template <class In1, class In2>
bool LexicographicalCompare (
    In1                 first1,
    In1                 last1,
    In2                 first2,
    In2                 last2
);

Template 파라미터

In1
입력 반복자입니다.
In2
입력 반복자입니다.
BinPred
이항 술어(Binary predicate)입니다.

파라미터

first1
비교할 1번째 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
last1
비교할 1번째 범위의 마지막 직전 요소의 위치를 설명하는 입력 반복자입니다.
first2
비교할 2번째 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
last2
비교할 2번째 범위의 마지막 직전 요소의 위치를 설명하는 입력 반복자입니다.
cmp
어떤 요소가 다른 요소보다 작다는 의미를 정의하는 사용자 정의 술어 함수 객체입니다. 이항 술어(binary predicate)는 2개의 인자를 취하며 만족하면 true를, 만족하지 않으면 false를 리턴합니다.

리턴 값

만약 1번째 범위가 2번째 범위보다 사전적으로 작다면 true를 리턴합니다; 그 외에는 false를 리턴합니다.

설명

LexicographicalCompare는 범위 [first1, last1)의 요소들이 범위 [first2, last2)의 요소들보다 사전적으로 작을 경우 true를 리턴합니다. 그 외에는 false를 리턴합니다. 사전적인 비교는 "사전" (요소별) 정렬을 의미합니다. 즉, *first1*first2보다 작으면 [first1, last1)[first2, last2)보다 작은 것이며, *first1*first2보다 크면 [first1, last1)[first2, last2)보다 큰 것입니다. 만약 두 개의 1번째 요소들이 동일하다면, LexicographicalCompare는 두 개의 2번째 요소들을 비교합니다. 그런 식으로 계속 진행합니다. 일반적인 사전 순서와 마찬가지로, 1번째 범위의 모든 요소가 2번째 범위의 해당 요소와 동일하지만 2번째 범위의 요소가 더 많은 경우 1번째 범위는 2번째 범위보다 작은 것으로 간주됩니다. LexicographicalCompare의 2가지 버전들은 어떤 요소가 다른 요소보다 작은지 여부를 어떻게 정의하느냐에 따라 다릅니다. 1번째 버전은 operator<를 사용하여 객체들을 비교하고, 2번째 버전은 술어 pred를 사용하여 객체들을 비교합니다.

참고사항

알고리즘