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:
|
|
The function allows for the destination range to be the same as one of the input ranges to make transformationsin 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 range includes 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
|
|
Output:
first contains: 21 41 61 81 101 |

本文详细介绍了 C++ STL 中的 transform 函数用法,包括单输入和双输入两种形式,展示了如何使用自定义操作符对序列进行转换,并提供了具体的代码示例。
380

被折叠的 条评论
为什么被折叠?



