Freigeben über


parallel_sort-Funktion

Ordnet die Elemente in einem angegebenen Bereich in einer aufsteigenden Reihenfolge oder gemäß eines Sortierkriteriums an, das von einem binären Prädikat parallel angegeben wird. Diese Funktion entspricht std::sort semantisch insofern, dass sie eine vergleichsbasierte, instabile, direkte Sortierung ist.

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
);

Parameter

  • _Random_iterator
    Der Iteratortyp des Eingabebereich.

  • _Function
    Der Typ des binären Vergleichsfunktionselements.

  • _Begin
    Ein Iterator mit wahlfreier Zugriff, der die Position des ersten Elements im Bereich behandelt sortiert werden.

  • _End
    Ein Iterator mit wahlfreier Zugriff, der die Position eine hinter dem letzten Element im Bereich behandelt sortiert werden.

  • _Func
    Ein benutzerdefiniertes Prädikatfunktionsobjekt, das definiert durch aufeinander folgende Elemente in der Bestellung erfüllt werden Vergleichskriterium. Ein binärer Prädikat akzeptiert zwei Argumente und gibt true zurück, wenn erfüllt und false, wenn nicht erfüllt wird. Diese Vergleichsoperatorfunktion muss eine genaue schwache Sortierung Paare von Elementen aus der Sequenz erzeugen.

  • _Chunk_size
    Die mimimum Größe eines Blocks, der in zwei für parallele Ausführung geteilt wird.

Hinweise

Die erste Überladung verwendet den binären Vergleichsoperator std::less.

Die zweite überladene Verwendung der angegebene binäre Vergleichsoperator, der die Signatur bool _Func(T, T) haben sollte, wobei T der Typ der Elemente im Eingabebereich ist.

Der Algorithmus weist den Eingabebereich in zwei Blöcke mit und übermittelt nacheinander jeden Block in zwei SubBlöcke für Ausführung parallel über. Das optionale Argument _Chunk_size kann verwendet werden, um dem Algorithmus anzugeben dass es sollte Handleblöcke der Größe <_Chunk_size seriell.

Anforderungen

Header: ppl.h

Namespace: Parallelität

Siehe auch

Referenz

concurrency-Namespace