template < class InputIterator, class OutputIterator, class UnaryOperator >
OutputIterator transform ( InputIterator first1, InputIterator last1,
OutputIterator result, UnaryOperator op );
template < class InputIterator1, class InputIterator2,
class OutputIterator, class BinaryOperator >
OutputIterator transform ( InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, OutputIterator result,
BinaryOperator binary_op );
Apply function to range
The first version applies op to all the elements in the input range ([first1,last1) ) and stores each returned value in the range beginning at result .
The second version uses as argument for each call to binary_op one element from the first input range ([first1,last1) ) and one element from the second input range (beginning at first2 ).
The behavior of this function template is equivalent to:
1 2 3 4 5 6 7 8 | |
The function allows for the destination range to be the same as one of the input ranges to make transformations in place .
Parameters
- first1, last1
- Input iterators to the initial and final positions of the first sequence. The range used is [first1,last1) , which contains all the elements between first1 and last1 , including the element pointed by first1 but not the element pointed by last1 . first2
- Input iterator to the initial position of the second range. The range includes as many elements as [first1,last1) . result
- Output iterator to the initial position of the range where function results are stored. The rangeincludes as many elements as [first1,last1) . op
- Unary function taking one element as argument, and returning some result value. This can either be a pointer to a function or an object whose class overloads operator() . binary_op
- Binary function taking two elements as argument (one of each of the two sequences), and returning some result value. This can either be a pointer to a function or an object whose class overloads operator() .
Return value
An iterator pointing to the element that follows the last element written in the result sequence.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
Output:
|
Complexity
Linear: Performs as many assignments and applications of op or binary_op as the number of elements in the range [first1,last1) .
http://www.cplusplus.com/reference/algorithm/transform/