Transform jest algorytmem służącym do wykonywania operacji na obiektach należących do danego zakresu. Pod tą nazwą kryją się dwie wersje funkcji: działająca na jednym zakresie danych wejściowych i działająca na dwóch zakresach. Transform zapisuje wynik operacji na kolejnych elementach do wskazanego zakresu wyjściowego. Transform jest stosowany do usprawnienia modyfikacji elementów kontenerów, w szczególności różnorodnych konwersji. Jego stosowanie poprawia czytelność kodu wskazując jasno jakie zakresy danych stanowią argumenty, a jakie zakresy elementów ulegają modyfikacji.
W pliku nagłówkowym algorithm
template <class InputIterator, class OutputIterator, class UnaryFunction> OutputIterator transform(InputIterator first1, InputIterator last1, OutputIterator result, UnaryFunction op); template <class InputIterator1, class InputIterator2, class OutputIterator, class BinaryFunction> OutputIterator transform(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryFunction op);
Iterator na kolejny element za ostatnim ze zmodyfikowanych przez algorytm (należy on do tej samej sekwencji co iterator result)
W przypadku potrzeby użycia algorytmu pozbawionego tych ograniczeń należy stosować algorytm for_each
Liniowa: wywołuje funkcję op i dokonuje przyporządkowania zwracanej przez nią wartości co najwyżej tylokrotnie, ile jest elementów w zakresie [first1, last1)