template<class InputIterator, class OutputIterator,
class UnaryOperation>
OutputIterator
transform(InputIterator first, InputIterator last,
OutputIterator result, UnaryOperation op);
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2,
class UnaryOperation>
ForwardIterator2
transform(ExecutionPolicy&& exec,
ForwardIterator1 first, ForwardIterator1 last,
ForwardIterator2 result, UnaryOperation op);
template<class InputIterator1, class InputIterator2,
class OutputIterator, class BinaryOperation>
OutputIterator
transform(InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, OutputIterator result,
BinaryOperation binary_op);
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2,
class ForwardIterator, class BinaryOperation>
ForwardIterator
transform(ExecutionPolicy&& exec,
ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2, ForwardIterator result,
BinaryOperation binary_op);
Requires:
op and
binary_op
shall not invalidate iterators or subranges, or modify elements in the ranges
Effects:
Assigns through every iterator
i
in the range
[result, result + (last1 - first1))
a new
corresponding value equal to
op(*(first1 + (i - result)))
or
binary_op(*(first1 + (i - result)), *(first2 + (i - result))). Returns:
result + (last1 - first1). Complexity:
Exactly
last1 - first1
applications of
op or
binary_op. This requirement also applies to the overload
with an
ExecutionPolicy .Remarks:
result may be equal to
first
in case of unary transform,
or to
first1 or
first2
in case of binary transform
.