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))로 요소들을 복사합니다.
단, pred가 true인 요소들은 복사하지 않습니다; 대신 newVal을 복사합니다.
좀 더 정확히는 모든 정수 n에 대하여 0 <= n < last-first입니다.
ReplaceCopyIf는 pred(*(first + n))일 경우 할당 *(result + n) = newVal을 수행합니다. 그 외에는 *(result + n) = *(first + n)을 수행합니다.
참고사항
알고리즘