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를 사용하여 객체들을 비교합니다.
참고사항
알고리즘