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
Riferimento all'oggetto partitioner. L'argomento può essere constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& o affinity_partitioner& Se viene utilizzato un oggetto affinity_partitioner, il riferimento deve essere un riferimento non const l-value, così l'algoritmo può archiviare lo stato per i cicli futuri per riutilizzarlo.
Note
auto_partitioner verrà utilizzato per gli overload senza un partitioner esplicito.
Per gli iteratori che non supportano l'accesso casuale, solo auto_partitioner è supportato.
Per ulteriori informazioni, vedere Algoritmi paralleli.
Requisiti
Header: ppl.h
Spazio dei nomi: concorrenza