Graphisoft®

GSRootVersion: 1.0

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은 시퀀스를 "제자리로" 변경하는 데 사용할 수도 있음을 참고하십시오: 반복자 firstresult가 같을 수 있다는 것을 허용합니다.

참고사항

알고리즘