- std::transform在指定的范圍內(nèi)應(yīng)用于給定的操作,并將結(jié)果存儲在指定的另一個范圍內(nèi)。要使用std::transform函數(shù)需要包含<algorithm>頭文件。
以下是std::transform的兩個聲明,一個是對應(yīng)于一元操作,一個是對應(yīng)于二元操作:
template <class InputIterator, class OutputIterator, class UnaryOperation>
OutputIterator transform (InputIterator first1, InputIterator last1,
OutputIterator result, UnaryOperation op);
template <class InputIterator1, class InputIterator2,
class OutputIterator, class BinaryOperation>
OutputIterator transform (InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, OutputIterator result,
對于一元操作,將op應(yīng)用于[first1, last1)范圍內(nèi)的每個元素,并將每個操作返回的值存儲在以result開頭的范圍內(nèi)。給定的op將被連續(xù)調(diào)用last1-first1次。op可以是函數(shù)指針或函數(shù)對象或lambda表達式。
對于二元操作,使用[first1, last1)范圍內(nèi)的每個元素作為第一個參數(shù)調(diào)用binary_op,并以first2開頭的范圍內(nèi)的每個元素作為第二個參數(shù)調(diào)用binary_op,每次調(diào)用返回的值都存儲在以result開頭的范圍內(nèi)。給定的binary_op將被連續(xù)調(diào)用last1-first1次。binary_op可以是函數(shù)指針或函數(shù)對象或lambda表達式。