다음을 통해 공유


parallel_sort 함수

비 내림차순 순서 또는 이진 조건자에 의해 지정된 순서 기준(병렬)에 따라 지정된 된 범위에 있는 요소를 정렬 합니다. 이 함수는 비교 기반, 불안정, 제자리에 정렬 이라는 점에서 std::sort 와 의미적으로 유사합니다.

template<
   typename _Random_iterator
>
inline void parallel_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Random_iterator,
   typename _Function
>
inline void parallel_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

매개 변수

  • _Random_iterator
    입력 범위의 반복기 형식입니다.

  • _Function
    이진 비교 함수의 형식입니다.

  • _Begin
    저장할 범위에 있는 첫 번째 요소의 위치를 가리키는 임의 접근 반복기입니다.

  • _End
    저장할 범위에 있는 마지막 요소의 하나 뒤 위치를 가리키는 임의 접근 반복기입니다.

  • _Func
    연속된 요소 순서에 의해 충족 되도록 비교 조건을 정의하는 조건자 함수의 사용자 정의 개체입니다. 이진 조건자는 두 개의 인수를 사용하고 만족할 때는 truefalse를 만족하지 못할 때는 를 반환합니다. 이 비교 함수는 엄격한 순서는 시퀀스의 요소 쌍에 적용해야 합니다.

  • _Chunk_size
    병렬 실행을 위한 두 개로 분할된 청크의 최소 크기입니다.

설명

첫 번째 오버 로드는 이진 비교 연산자 std::less 를 사용합니다.

두 번째 오버로드는 bool _Func(T, T) 시그니처를 가진 제공된 이진 비교 연산자를 사용합니다. T 는 입력된 범위에 있는 요소의 형식입니다.

알고리즘은 입력된 범위의 두 조각으로 나누고 연속적으로 각 청크 병렬에서 실행을 위해 두 개의 하위 청크로 나눕니다. 선택적 인수 _Chunk_size 는 직렬로 < _Chunk_size 크기의 청크를 처리하는 알고리즘을 나타내는데 사용할 수 있습니다.

요구 사항

헤더: ppl.h

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스