Considere el problema de agregar contenidos de dos arreglos a un tercer arreglo. Se da que todas las arrays son del mismo tamaño.
El siguiente es un programa C++ simple sin transform().
CPP
// A C++ code to add two arrays #include <bits/stdc++.h> using namespace std; int main() { int arr1[] = {1, 2, 3}; int arr2[] = {4, 5, 6}; int n = sizeof(arr1)/sizeof(arr1[0]); int res[n]; // Code to add two arrays for (int i=0; i<n; i++) res[i] = arr1[i] + arr2[i]; for (int i=0; i<3; i++) cout << res[i] << " "; }
Producción :
5 7 9
Usando la función de transformación de STL, podemos agregar arrays en una sola línea.
C++
// Using transform() in STL to add two arrays #include <bits/stdc++.h> using namespace std; int main() { int arr1[] = {1, 2, 3}; int arr2[] = {4, 5, 6}; int n = sizeof(arr1)/sizeof(arr1[0]); 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<n; i++) cout << res[i] << " "; }
Producción :
5 7 9
transform() en C++ se usa de dos formas:
- Operación unaria : aplica un operador unario en la entrada para convertirla en salida
transform(Iterator inputBegin, Iterator inputEnd, Iterator OutputBegin, unary_operation)
- El siguiente es un ejemplo de C++.
C++
// C++ program to demonstrate working of // transform with unary operator. #include <bits/stdc++.h> 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[0]); // 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<n; i++) cout << arr[i] << " "; return 0; }
- Producción :
2 3 4 5 6
- Operación binaria : aplica un operador binario en la entrada para convertir en salida
transform(Iterator inputBegin1, Iterator inputEnd1, Iterator inputBegin2, Iterator OutputBegin, binary_operation)
- El ejemplo mencionado anteriormente para agregar dos arrays es un ejemplo de transformación con operación binaria.
Más ejemplos:
podemos usar transform para convertir una string a mayúsculas (ver this )
También podemos modificar los ejemplos anteriores para vectores.
// vect is a vector of integers. transform(vect.begin(), vect.end(), vect.begin(), increment);
Tema relacionado:
Funtores en C++
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA