- std::transform在指定的范圍內應用于給定的操作,并將結果存儲在指定的另一個范圍內萌朱。要使用std::transform函數需要包含<algorithm>頭文件。
以下是std::transform的兩個聲明,一個是對應于一元操作,一個是對應于二元操作:
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應用于[first1, last1)范圍內的每個元素竹挡,并將每個操作返回的值存儲在以result開頭的范圍內镀娶。給定的op將被連續(xù)調用last1-first1次。op可以是函數指針或函數對象或lambda表達式揪罕。
對于二元操作梯码,使用[first1, last1)范圍內的每個元素作為第一個參數調用binary_op,并以first2開頭的范圍內的每個元素作為第二個參數調用binary_op,每次調用返回的值都存儲在以result開頭的范圍內。給定的binary_op將被連續(xù)調用last1-first1次好啰。binary_op可以是函數指針或函數對象或lambda表達式轩娶。