Freigeben über


parallel_for_each-Funktion

parallel_for_each wendet eine angegebene Funktion parallel auf jedes Element innerhalb eines Bereichs an. Sie entspricht semantisch der for_each-Funktion im std-Namespace, außer dass die Iteration über die Elemente parallel ausgeführt wird und die Reihenfolge der Iteration nicht angegeben ist. Das Argument _Func muss einen Funktionsaufrufoperator in der Form operator()(T) unterstützen, wobei der Parameter T der Elementtyp des durchlaufenen Containers ist.

template <
   typename _Iterator,
   typename _Function
>
void parallel_for_each(
   _Iterator_First,
   _Iterator_Last,
   const _Function& _Func
);

template <
   typename _Iterator,
   typename _Function,
   typename _Partitioner
>
void parallel_for_each(
   _Iterator_First,
   _Iterator_Last,
   const _Function& _Func,
   _Partitioner&& _Part
);

Parameter

  • _Iterator
    Der Typ des Iterators, der verwendet wird, um den Container zu durchlaufen.

  • _Function
    Der Typ der Funktion, die auf jedes Element innerhalb des Bereichs angewendet wird.

  • _Partitioner

  • _First
    Ein Iterator, der die Position des ersten Elements angibt, das in die parallele Iteration eingeschlossen werden soll.

  • _Last
    Ein Iterator, der die Position ein Element hinter dem letzten Elements angibt, das in die parallele Iteration eingeschlossen werden soll.

  • _Func
    Ein benutzerdefiniertes Funktionsobjekt, das auf jedes Element im Bereich angewendet wird.

  • _Part
    Ein Verweis auf das Partitioniererobjekt. Das Argument kann einer von constauto_partitioner&, conststatic_partitioner&, const&simple_partitioner oder affinity_partitioner sein &, wenn ein Objekt verwendet affinity_partitioner, wird der Verweis muss ein nicht konstanter L-Werts-Verweis sein, sodass der Algorithmus Zustand speichern kann, dass zukünftige Schleifen wiederverwenden.

Hinweise

auto_partitioner wird für die Überladung ohne einen expliziten Partitionierer verwendet.

Für Iteratoren, die nicht wahlfreien Zugriff unterstützen, nur die auto_partitioner unterstützt wird.

Weitere Informationen finden Sie unter Parallele Algorithmen.

Anforderungen

Header: ppl.h

Namespace: Parallelität

Siehe auch

Referenz

concurrency-Namespace