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
    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:

Vedere anche

Riferimenti

Spazio dei nomi concurrency