Funkcja parallel_for
parallel_forwykonuje iterację przez szereg wskaźników i wykonuje funkcję dostarczone przez użytkownika w każdej iteracji równolegle.
template <
typename _Index_type,
typename _Function,
typename _Partitioner
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
_Index_type_Step,
const _Function& _Func,
_Partitioner&& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
_Index_type_Step,
const _Function& _Func
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const auto_partitioner& _Part = auto_partitioner()
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const static_partitioner& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const simple_partitioner& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
affinity_partitioner& _Part
);
Parametry
_Index_type
Typ indeksu, używany dla iteracji._Function
Typ funkcji, która zostanie wykonana w każdej iteracji._Partitioner
Typ używanego do partycji podany zakres go._First
Indeks pierwszego mają zostać uwzględnione w iteracji._Last
Indeks jeden ostatniego indeksu mają zostać uwzględnione w iteracji w przeszłości._Step
Wartość, według której krok podczas iteracji z _First do _Last.Krok musi być dodatnia.invalid_argument jest generowany, jeśli czynnością jest mniejsza niż 1._Func
Funkcja wykonywane po każdej iteracji.Może to być wyrażenie lambda, wskaźnik funkcji, lub dowolny obiekt, obsługującego wersją operator wywołania funkcji z podpisem void operator()(_Index_type**)**._Part
Odwołanie do obiektu go.Argument może być jednym z constauto_partitioner&, conststatic_partitioner&, constsimple_partitioner& lub affinity_partitioner& Jeśli affinity_partitioner obiekt jest używany, odniesienia muszą być odwołanie nie const l wartość, tak aby algorytm można przechowywać stan dla przyszłych pętli do ponownego wykorzystania.
Uwagi
Aby uzyskać więcej informacji, zobacz Algorytmy równoległe.
Wymagania
Nagłówek: ppl.h
Obszar nazw: współbieżności