Funzione parallel_for_each
parallel_for_each applica una funzione specificata a ogni elemento all'interno di un intervallo, in parallelo.È semanticamente equivalente alla funzione for_each nello spazio dei nomi std, con l'eccezione che l'iterazione sugli elementi viene eseguita in parallelo e l'ordine di iterazione non è specificato.L'argomento _Func deve supportare un operatore di chiamata della funzione del form operator()(T) laddove il parametro T è il tipo di elemento del contenitore su cui viene eseguita l'iterazione.
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
);
Parametri
_Iterator
Tipo dell'iteratore utilizzato per eseguire l'iterazione sul contenitore._Function
Tipo della funzione che verrà applicato a ciascun elemento all'interno dell'intervallo._Partitioner
_First
Un iteratore che indirizza la posizione del primo elemento da includere in iterazione parallela._Last
Un iteratore che indirizza la prima posizione oltre l'elemento finale da includere in iterazione parallela._Func
Un oggetto di funzione definita dall'utente applicato a ogni elemento nell'intervallo._Part
Un riferimento a un oggetto di partitioner.L'argomento può essere uno di constauto_partitioner&, di conststatic_partitioner&, di constsimple_partitioner& o di affinity_partitioner& se un oggetto di affinity_partitioner viene utilizzato, il riferimento deve essere un riferimento non const l-value, in modo che l'algoritmo possibile archiviare lo stato per i cicli futuri di riutilizzare.
Note
auto_partitioner verrà utilizzato per l'overload senza un partitioner esplicito.
Per gli iteratori non supportano l'accesso casuale, solo auto_partitioner è supportato.
Per ulteriori informazioni, vedere Algoritmi paralleli.
Requisiti
Header: ppl.h
Concorrenza diSpazio dei nomi: