Mismatch
동일하거나 이항 술어에 의해 지정된 의미에서 동일한 요소에 대하여 두 범위를 요소 별로 비교하고 차이가 발생하는 첫 번째 위치를 찾습니다.
template <class In1, class In2>
Pair< In1, In2 > Mismatch (
In1 first1,
In1 last1,
In2 first2
);
template <class In1, class In2, class BinPred>
Pair< In1, In2 > Mismatch (
In1 first1,
In1 last1,
In2 first2,
BinPred pred
);
Template 파라미터
- In1
-
입력 반복자입니다.
- In2
-
입력 반복자입니다.
- BinPred
-
이항 술어(Binary predicate)입니다.
파라미터
- first1
-
테스트할 1번째 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
- last1
-
테스트할 1번째 범위의 마지막 직전 요소의 위치를 설명하는 입력 반복자입니다.
- first2
-
테스트할 2번째 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
- pred
-
두 요소들이 같을 경우 충족되는 조건을 정의하는 사용자 정의 술어 함수 객체입니다.
이항 술어(binary predicate)는 2개의 인자를 취하며 만족할 때에는 true를, 만족하지 않을 때에는 false를 리턴합니다.
리턴 값
2개의 범위들에서 불일치하는 위치들을 설명하는 반복자 쌍입니다.
여기서 1번째 구성요소 반복자는 1번째 범위의 위치를 가리키며, 2번째 구성요소 반복자는 2번째 범위의 위치를 가리킵니다.
만약 비교한 범위들의 요소들 간의 차이가 없거나, 1번째 버전의 이항 술어가 두 범위의 모든 요소 쌍에 의해 만족되면
1번째 구성요소 반복자는 1번째 범위의 마지막 직전 요소의 위치를 가리키고,
2번째 구성요소 반복자는 2번째 범위의 마지막 직전 요소의 위치를 가리킵니다.
설명
Mismatch는 두 범위 [first1, last1)과 [first2, first2 + (last1 - first1))이 차이 나는 1번째 위치를 찾습니다.
Mismatch의 2가지 버전들은 요소들의 차이점을 테스트하는 방법이 다릅니다.
Mismatch의 1번째 버전은 *i != *(first2 + (i - first1))인 [first1, last1)의 1번째 반복자 i를 찾습니다.
리턴 값은 1번째 요소가 i이며 2번째 요소가 *(first2 + (i - first1))인 반복자 쌍입니다.
만약 그러한 반복자 i가 존재하지 않는다면, 리턴 값은 1번째 요소가 last1이며 2번째 요소가 *(first2 + (last1 - first1))인 반복자 쌍입니다.
Mismatch의 2번째 버전은 pred(*i, *(first2 + (i - first1))이 false인 [first1, last1)의 1번째 반복자 i를 찾습니다.
리턴 값은 1번째 요소가 i이며 2번째 요소가 *(first2 + (i - first1))인 반복자 쌍입니다.
만약 그러한 반복자 i가 존재하지 않는다면, 리턴 값은 1번째 요소가 last1이며 2번째 요소가 *(first2 + (last1 - first1))인 반복자 쌍입니다.
참고사항
알고리즘