# std::transform() in C++ STL (Perform an operation on all elements)

• Difficulty Level : Easy
• Last Updated : 22 Jun, 2021

Consider the problem of adding contents of two arrays into a third array. It is given that all arrays are of same size.
Following is simple C++ program without transform().

Take a step-up from those "Hello World" programs. Learn to implement data structures like Heap, Stacks, Linked List and many more! Check out our Data Structures in C course to start learning today.

## CPP

 `// A C++ code to add two arrays``#include ``using` `namespace` `std;` `int` `main()``{``  ``int` `arr1[] = {1, 2, 3};``  ``int` `arr2[] = {4, 5, 6};``  ``int` `n = ``sizeof``(arr1)/``sizeof``(arr1);``  ``int` `res[n];` `  ``// Code to add two arrays``  ``for` `(``int` `i=0; i

Output :

`5 7 9`

Using transform function of STL, we can add arrays in single line.

## C

 `// Using transform() in STL to add two arrays``#include ``using` `namespace` `std;` `int` `main()``{``  ``int` `arr1[] = {1, 2, 3};``  ``int` `arr2[] = {4, 5, 6};``  ``int` `n = ``sizeof``(arr1)/``sizeof``(arr1);``  ``int` `res[n];` `  ``// Single line code to add arr1[] and arr2[] and``  ``// store result in res[]``  ``transform(arr1, arr1+n, arr2, res, plus<``int``>());` `  ``for` `(``int` `i=0; i

Output :

`5 7 9`

transform() in C++ is used in two forms:

1. Unary Operation : Applies a unary operator on input to convert into output
```transform(Iterator inputBegin, Iterator inputEnd,
Iterator OutputBegin, unary_operation) ```
1. Following is C++ example.

## C

 `// C++ program to demonstrate working of``// transform with unary operator.``#include ``using` `namespace` `std;` `int` `increment(``int` `x) {  ``return` `(x+1); }` `int` `main()``{``    ``int` `arr[] = {1, 2, 3, 4, 5};``    ``int` `n = ``sizeof``(arr)/``sizeof``(arr);` `    ``// Apply increment to all elements of``    ``// arr[] and store the modified elements``    ``// back in arr[]``    ``transform(arr, arr+n, arr, increment);` `    ``for` `(``int` `i=0; i
1. Output :
`2 3 4 5 6 `
1.
2. Binary Operation : Applies a binary operator on input to convert into output
```transform(Iterator inputBegin1, Iterator inputEnd1,
Iterator inputBegin2, Iterator OutputBegin,
binary_operation) ```
1. The example mentioned above for adding two arrays is an example of transform with binary operation.

More examples:
We can use transform to convert a string to upper case (See this
We can modify above examples for vectors also.

```
// vect is a vector of integers.
transform(vect.begin(), vect.end(),
vect.begin(), increment); ```

Related Topic:
Functors in C++