Condividi tramite


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

Vedere anche

Riferimenti

Spazio dei nomi concurrency