Includes
하나의 정렬된 범위가 두 번째 정렬된 범위에 포함된 모든 요소들을 포함하는지 여부를 테스트합니다.
여기서 요소들 간의 순서 또는 등가 기준은 이항 술어(binary predicate)에 의해 지정될 수 있습니다.
template <class In>
bool Includes (
In first1,
In last1,
In first2,
In last2
);
template <class In, class BinPred>
bool Includes (
In first1,
In last1,
In first2,
In last2,
BinPred pred
);
Template 파라미터
- In
-
입력 반복자입니다.
- BinPred
-
이항 술어(Binary predicate)입니다.
파라미터
- first1
-
테스트할 2개의 정렬된 소스 범위들 중 1번째 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
2번째 범위의 모든 요소들이 1번째 범위 안에 포함되어 있는지 여부를 테스트합니다.
- last1
-
테스트할 2개의 정렬된 소스 범위들 중 1번째 범위의 마지막 직전 요소의 위치를 설명하는 입력 반복자입니다.
2번째 범위의 모든 요소들이 1번째 범위 안에 포함되어 있는지 여부를 테스트합니다.
- first2
-
테스트할 2개의 정렬된 소스 범위들 중 2번째 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
2번째 범위의 모든 요소들이 1번째 범위 안에 포함되어 있는지 여부를 테스트합니다.
- last2
-
테스트할 2개의 정렬된 소스 범위들 중 2번째 범위의 마지막 직전 요소의 위치를 설명하는 입력 반복자입니다.
2번째 범위의 모든 요소들이 1번째 범위 안에 포함되어 있는지 여부를 테스트합니다.
- pred
-
한 요소가 다른 요소보다 작다는 의미를 정의하는 사용자 정의 술어 함수 객체입니다.
이항 술어(binary predicate)는 2개의 인자를 취하며, 만족할 때에는 true, 만족하지 않을 때에는 false를 리턴합니다.
리턴 값
만약 1번째 정렬된 범위가 2번째 정렬된 범위의 모든 요소들을 포함하고 있다면 true를 리턴합니다; 그 외에는 false입니다.
설명
Includes는 어떤 정렬된 범위가 또 다른 정렬된 범위를 포함하는지 여부를 테스트합니다.
즉, 이것은 [first2, last2)의 모든 요소에 대하여 [first1, last1)에도 해당 요소들이 존재할 경우에만 true를 리턴합니다.
[first1, last1)과 [first2, last2) 모두 오름차순으로 정렬되어 있어야 합니다.
Includes의 2가지 버전들은 한 요소가 다른 요소보다 작다는 것을 어떻게 정의하느냐에 따라 다릅니다.
1번째 버전은 operator<를 사용하여 객체들을 비교하고, 2번째 버전은 술어 pred를 이용하여 객체들을 비교합니다.
참고사항
알고리즘