Graphisoft®

GSRootVersion: 1.0

UniqueCopy

소스 범위의 요소들을 서로 인접한 중복 요소를 제외한 대상 범위로 복사합니다.

template <class For, class Out>
Out UniqueCopy (
    For                 first,
    For                 last,
    Out                 res
);
template <class For, class Out, class BinPred>
Out UniqueCopy (
    For                 first,
    For                 last,
    Out                 res,
    BinPred             pred
);

Template 파라미터

For
순방향 반복자입니다.
Out
출력 반복자입니다.
BinPred
이항 술어(Binary predicate)입니다.

파라미터

first
복사될 소스 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
last
복사될 소스 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.
res
목적지 범위의 1번째 요소의 위치를 설명하는 출력 반복자입니다. 목적지 범위는 연속적인 중복이 제거된 사본을 수신합니다.
pred
두 요소를 등가로 취하는 경우 만족할 조건을 정의하는 사용자 정의 술어 함수 객체입니다. 이항 술어(binary predicate)는 2개의 인자를 취하며 만족할 때에는 true를, 만족하지 않을 때에는 false를 리턴합니다.

리턴 값

목적지 범위의 마지막 직전 요소의 위치를 설명하는 출력 반복자입니다. 목적지 범위는 연속적인 중복이 제거된 사본을 수신합니다.

설명

UniqueCopy는 범위 [first, last)에서 result로 시작하는 범위로 요소들을 복사하되, 연속적인 중복 요소들의 그룹에서 1번째 요소만 복사합니다. 리턴 값은 요소들이 복사되는 범위의 끝입니다. UniqueCopy가 2가지 버전들을 가지고 있는 이유는 중복되는 요소들의 연속적인 그룹이 무엇을 의미하는지에 대한 2가지 서로 다른 정의가 있기 때문입니다. 1번째 버전에서는 단순한 등가를 테스트합니다: 범위 내 모든 반복자 i에 대하여 i == f 또는 *i == *(i - 1)일 경우, 범위 [f, l)의 요소들이 중복합니다. 2번째 버전에서는 임의의 이항 술어 pred를 테스트합니다: 범위 내 모든 반복자 i에 대하여 i == f 또는 pred(*i, *(i - 1))true일 경우, 범위 [f, l)의 요소들이 중복합니다.

참고사항

알고리즘