Transform是STL中的一个函数。
Transform是对区间中的内容进行变换操作,主要有两种方式。
第一种是
template<typename _InputIterator, typename _OutputIterator, typename _UnaryOperation> _OutputIterator transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __unary_op) { }
输入是区间的__first-__last的一段区间,对这段区间的数据利用__unary_op函数进行操作,然后将结果放入到__result中。
第二种是
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _BinaryOperation> _OutputIterator transform(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _OutputIterator __result, _BinaryOperation __binary_op) { }
第一个输入区间依旧是__first-__last这一段,第二个输入是__first2开始取(__last-__first)这一段长度的数据,对这两段的数据进行__binary_op操作,然后将结果存入到__result中。
__first是第一段区间的开始
__last是第二段区间的结束
__first2是第二段区间的开始,在第二个区间开始处向后取__last-__first长度的数据
__result是存储结果的区间开始
__binary_op是对这段数据进行操作的函数,相当于lambda函数。
原文链接:https://blog.csdn.net/qq_18293213/article/details/89219828