Graphisoft®

GSRootVersion: 1.0

ReplaceCopyIf

소스 범위 내에서 각 요소를 검사하고 결과를 새 대상 범위로 복사하는 동안 지정된 술어를 만족하는 경우 해당 요소를 대체합니다.

template <class In, class Out, class Pred, class T>
Out ReplaceCopyIf (
    In                  first,
    In                  last,
    Out                 res,
    Pred                pred,
    const T &           newVal
);

Template 파라미터

In
입력 반복자입니다.
Out
출력 반복자입니다.
Pred
단항 술어(Unary predicate)입니다.
T
T 타입 template 파라미터입니다.

파라미터

first
요소들이 교체되는 범위의 1번째 요소의 위치를 가리키는 입력 반복자입니다.
last
요소들이 교체되는 범위의 마지막 직전 요소의 위치를 가리키는 입력 반복자입니다.
res
요소들이 복사될 목적지 범위의 1번째 요소의 위치를 가리키는 출력 반복자입니다.
pred
대체될 요소의 값은 단항 술어(unary predicate)를 만족해야 합니다.
newVal
술어를 만족하는 이전 값을 가진 요소들에게 할당할 새로운 값입니다.

리턴 값

목적지 범위의 마지막 직전 요소의 위치를 가리키는 출력 반복자입니다.

설명

ReplaceCopyIf는 범위 [first, last)로부터 범위 [result, result + (last - first))로 요소들을 복사합니다. 단, predtrue인 요소들은 복사하지 않습니다; 대신 newVal을 복사합니다. 좀 더 정확히는 모든 정수 n에 대하여 0 <= n < last-first입니다. ReplaceCopyIfpred(*(first + n))일 경우 할당 *(result + n) = newVal을 수행합니다. 그 외에는 *(result + n) = *(first + n)을 수행합니다.

참고사항

알고리즘