Transform
소스 범위의 각 요소 또는 두 소스 범위의 요소 쌍에 지정된 술어를 적용하고 술어의 리턴 값들을 대상 범위로 복사합니다.
template <class In1, class In2, class Out, class BinOp>
Out Transform (
In1 first1,
In1 last1,
In2 first2,
Out result,
BinOp op
);
template <class In, class Out, class UnOp>
Out Transform (
In first,
In last,
Out result,
UnOp op
);
Template 파라미터
- In1
-
입력 반복자입니다.
- In2
-
입력 반복자입니다.
- Out
-
출력 반복자입니다.
- BinOp
-
이항 연산자입니다.
- In
-
입력 반복자입니다.
- UnOp
-
단항 연산자입니다.
파라미터
- first1
-
동작될 1번째 소스 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
- last1
-
동작될 1번째 소스 범위의 마지막 직전 요소의 위치를 설명하는 입력 반복자입니다.
- first2
-
동작될 2번째 소스 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
- result
-
목적지 범위의 1번째 요소의 위치를 설명하는 출력 반복자입니다.
- op
-
1번째 소스 범위의 각 요소에 적용되는 알고리즘의 2번째 버전에서 사용하는 사용자 정의 단항 술어입니다.
또는 순방향으로 2개의 소스 범위에 쌍으로 적용되는 알고리즘의 1번째 버전에 사용되는 사용자 정의 이항 술어입니다.
- first
-
동작될 1번째 소스 범위의 1번째 요소의 위치를 설명하는 입력 반복자입니다.
- last
-
동작될 1번째 소스 범위의 마지막 직전 요소의 위치를 설명하는 입력 반복자입니다.
리턴 값
술어에 의해 변환된 출력 요소들을 수신하는 목적지 범위의 마지막 직전 요소의 위치를 설명하는 출력 반복자입니다.
설명
Transform은 객체들 상에서 작동합니다;
Transform은 2가지 버전들이 있습니다. 하나는 입력 반복자들의 1개 범위를 사용하고 다른 하나는 입력 범위들의 2개 범위들을 사용합니다.
Transform의 2번째 버전은 범위 [first, last)의 각 반복자 i에 대하여 연산 op(*i)를 수행하고, 연산 결과를 *o에 할당합니다. 여기서 o는 해당 출력 반복자입니다.
즉, 0 <= n < last - first인 각 n에 대하여 할당 *(result + n) = op(*(first + n))을 수행합니다.
리턴 값은 result + (last - first)입니다.
Transform의 1번째 버전은 매우 비슷하지만 단항 함수 대신 이항 함수를 사용합니다.
Transform의 1번째 버전은 범위 [first1, last1)의 각 반복자 i1에 대하여 연산 op(*i1, *i2)를 수행하고, 연산 결과를 *o에 할당합니다.
여기서 i2는 2번째 입력 범위의 해당 반복자이며 o는 해당 출력 반복자입니다.
즉, 0 <= n < last1 - first1인 각 n에 대하여 할당 *(result + n) = op(*(first1 + n), *(first2 + n)을 수행합니다.
리턴 값은 result + (last1 - first1)입니다.
Transform은 시퀀스를 "제자리로" 변경하는 데 사용할 수도 있음을 참고하십시오:
반복자 first와 result가 같을 수 있다는 것을 허용합니다.
참고사항
알고리즘