cpp/algorithm/for each

@1@ Applies the given function object to the result of dereferencing every iterator in the range, in order. @2@ Applies the given function object to the result of dereferencing every iterator in the range  (not necessarily in order). The algorithm is executed according to.

For both overloads, if the iterator type (/) is mutable, may modify the elements of the range through the dereferenced iterator. If returns a result, the result is ignored.

Unlike the rest of the parallel algorithms, is not allowed to make copies of the elements in the sequence even if they are.

Return value
@1@ @2@ (none)

Complexity
Exactly applications of.

Possible implementation
See also the implementations in libstdc++, libc++ and MSVC stdlib.