Spis treści

Algorytm transform

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.

Deklaracja

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);

Parametry

Zwracana wartość

Iterator na kolejny element za ostatnim ze zmodyfikowanych przez algorytm (należy on do tej samej sekwencji co iterator result)

Ograniczenia

W przypadku potrzeby użycia algorytmu pozbawionego tych ograniczeń należy stosować algorytm for_each

Złożoność

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)