다음을 통해 공유


parallel_transform 함수

두 소스 범위에서 요소 쌍에 또는 소스 범위에 있는 각 요소에 지정된 함수 개체를 적용하고, 동시에 대상 범위에 함수 개체의 반환 값을 복사합니다. 이 함수는 구문적으로 std::transform 와 동일합니다.

template <
   typename _Input_iterator1,
   typename _Output_iterator,
   typename _Unary_operator
>
_Output_iterator parallel_transform(
   _Input_iterator1_First1,
   _Input_iterator1_Last1,
   _Output_iterator_Result,
   const _Unary_operator& _Unary_op,
   const auto_partitioner& _Part = auto_partitioner()
);

template <
   typename _Input_iterator1,
   typename _Output_iterator,
   typename _Unary_operator
>
_Output_iterator parallel_transform(
   _Input_iterator1_First1,
   _Input_iterator1_Last1,
   _Output_iterator_Result,
   const _Unary_operator& _Unary_op,
   const static_partitioner& _Part
);

template <
   typename _Input_iterator1,
   typename _Output_iterator,
   typename _Unary_operator
>
_Output_iterator parallel_transform(
   _Input_iterator1_First1,
   _Input_iterator1_Last1,
   _Output_iterator_Result,
   const _Unary_operator& _Unary_op,
   const simple_partitioner& _Part
);

template <
   typename _Input_iterator1,
   typename _Output_iterator,
   typename _Unary_operator
>
_Output_iterator parallel_transform(
   _Input_iterator1_First1,
   _Input_iterator1_Last1,
   _Output_iterator_Result,
   const _Unary_operator& _Unary_op,
   affinity_partitioner& _Part
);

template <
   typename _Input_iterator1,
   typename _Input_iterator2,
   typename _Output_iterator,
   typename _Binary_operator,
   typename _Partitioner
>
_Output_iterator parallel_transform(
   _Input_iterator1_First1,
   _Input_iterator1_Last1,
   _Input_iterator2_First2,
   _Output_iterator_Result,
   const _Binary_operator& _Binary_op,
   _Partitioner&& _Part
);

template <
   typename _Input_iterator1,
   typename _Input_iterator2,
   typename _Output_iterator,
   typename _Binary_operator
>
_Output_iterator parallel_transform(
   _Input_iterator1_First1,
   _Input_iterator1_Last1,
   _Input_iterator2_First2,
   _Output_iterator_Result,
   const _Binary_operator& _Binary_op
);

매개 변수

  • _Input_iterator1
    첫 번째 형식 또는 입력된 반복기입니다.

  • _Output_iterator
    출력 반복기의 형식입니다.

  • _Unary_operator
    입력된 범위에 있는 각 요소에 대해 실행 되는 단항 함수의 형식입니다.

  • _Input_iterator2
    두번째 입력 반복기의 형식입니다.

  • _Binary_operator
    두 원본 범위의 요소에 쌍 단위로 실행되는 이진 함수의 형식입니다.

  • _Partitioner

  • _First1
    입력된 반복기만 원본 범위에서 작동 하는 첫 번째 있는 첫 번째 요소의 위치입니다.

  • _Last1
    입력된 반복기만 원본 범위에서 작동 하는 마지막 엘리먼트의 하나 전 위치입니다.

  • _Result
    목표 범위에서 첫 번째 요소의 위치를 가리키는 출력 반복기입니다.

  • _Unary_op
    소스 범위에 있는 각 요소에 적용할 사용자 정의 단항 함수 개체입니다.

  • _Part
    파티셔너 개체에 대한 참조입니다. 인수 중 하나일 수 있습니다 const auto_partitioner&, const static_partitioner&, const simple_partitioner & 또는 affinity_partitioner & 경우는 affinity_partitioner 개체를 사용, 알고리즘은 재사용 하 여 이후의 반복에 대 한 상태를 저장할 수 있도록 참조 l-value 비 const 참조를 해야 합니다.

  • _First2
    입력된 반복기만 두 번째 원본 범위에서 작동 하는 있는 첫 번째 요소의 위치입니다.

  • _Binary_op
    두 소스 범위 전달 순서로 쌍에 적용 되는 이진 함수 사용자 정의 개체입니다.

반환 값

출력 반복기 위치 지나서 함수 개체로 변환 하는 출력 요소를 받는 대상 범위의 마지막 요소입니다.

설명

auto_partitioner 는 명시적 파티셔너 인수 없이 오버 로드에 사용됩니다.

임의 액세스를 지원하지 않는 반복기에 대해 auto_partitioner 만을 사용할 수 있습니다.

_Unary_op 인수를 사용하는오버 로드는 단항 함수 입력된 범위에 있는 각 요소에 적용하여 출력 범위에 입력된 범위를 변환합니다. _Unary_op는 operator()(T) 서명을 사용하여 함수 호출 연산자를 지원해야 합니다. T 는 반복되는 범위의 값 형식입니다.

_Binary_op 인수를 사용하는 오버 로드는 입력된 범위의 첫 번째 및 두 번째 입력된 범위에서 한 요소 한 요소를 이진 함수를 적용 하 여 출력 범위에 두 입력된 값의 범위를 변환 합니다. _Binary_op은 operator()(T, U) 서명을 사용하여 함수 호출 연산자를 지원해야 합니다. T , U 는 두 입력된 반복기의 값 형식입니다.

자세한 내용은 병렬 알고리즘을 참조하십시오.

요구 사항

헤더: ppl.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스