![]() |
hpx::parallel::v1::for_each_n
// In header: <hpx/parallel/detail/for_each.hpp> template<typename ExPolicy, typename InIter, typename Size, typename F> unspecified for_each_n(ExPolicy && policy, InIter first, Size count, F && f);
Applies f to the result of dereferencing every iterator in the range [first, first + count), starting from first and proceeding to first + count - 1.
![]() |
Note |
---|---|
Complexity: Applies f exactly count times. |
If f returns a result, the result is ignored.
If the type of first satisfies the requirements of a mutable iterator, f may apply non-constant functions through the dereferenced iterator.
Unlike its sequential form, the parallel overload of for_each does not return a copy of its Function parameter, since parallelization may not permit efficient state accumulation.
The application of function objects in parallel algorithm invoked with an execution policy object of type sequential_execution_policy
execute in sequential order in the calling thread.
The application of function objects in parallel algorithm invoked with an execution policy object of type parallel_execution_policy
or task_execution_policy
are permitted to execute in an unordered fashion in unspecified threads, and indeterminately sequenced within each thread.
Parameters: |
|
||||||||
Template Parameters: |
|
||||||||
Returns: |
The for_each_n algorithm returns a hpx::future<InIter> if the execution policy is of type task_execution_policy and returns InIter otherwise. It returns first + count for non-negative values of count and first for negative values. |