This version of transform
applies a unary function to each element of an input sequence and stores the result in the corresponding position in an output sequence. Specifically, for each iterator i
in the range [first
, last
) the operation op(*i)
is performed and the result is assigned to *o
, where o
is the corresponding output iterator in the range [result
, result
+ (last
- first
) ). The input and output sequences may coincide, resulting in an in-place transformation.
- Parameters
-
first | The beginning of the input sequence. |
last | The end of the input sequence. |
result | The beginning of the output sequence. |
op | The tranformation operation. |
- Returns
- The end of the output sequence.
- Template Parameters
-
InputIterator | is a model of Input Iterator and InputIterator's value_type is convertible to UnaryFunction's argument_type . |
OutputIterator | is a model of Output Iterator. |
UnaryFunction | is a model of Unary Function and UnaryFunction's result_type is convertible to OutputIterator's value_type . |
- Precondition
first
may equal result
, but the range [first, last)
shall not overlap the range [result, result + (last - first))
otherwise.
The following code snippet demonstrates how to use transform
int data[10] = {-5, 0, 2, -3, 2, 4, 0, -1, 2, 8};
- See also
- https://en.cppreference.com/w/cpp/algorithm/transform