estándar::reemplazar
Asigna new_value a todos los elementos en el rango [primero, último] que se comparan con old_value. La función usa operator == para comparar los elementos individuales con old_value
Plantilla de función:
void replace (ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value) first, last : Forward iterators to the initial and final positions in a sequence of elements. old_value : Value to be replaced. new_value : Replacement value.
Valor devuelto:
esta función no devuelve ningún valor. Si se encuentran elementos que necesitan ser reemplazados, entonces el elemento
reemplazado permanece sin cambios.
Ejemplos:
Input : 10 20 30 30 20 10 10 20 Output : 10 99 30 30 99 10 10 99 // Replaced value 20 in vector to 99. Input : 3 5 7 8 9 5 4 Output : 3 5 7 12 9 5 4 // Replaced value 8 by 12.
CPP
// CPP program to find and replace the value // with another value in array // using std::replace #include <bits/stdc++.h> using namespace std; // Driver code int main() { int arr[] = { 10, 20, 30, 30, 20, 10, 10, 20 }; int n = sizeof(arr) / sizeof(arr[0]); // variable containing the old and new values int old_val = 20, new_val = 99; // print old array cout << "Original Array:"; for (int i = 0; i < n; i++) cout << ' ' << arr[i]; cout << '\n'; // Function used to replace the values replace(arr, arr + n, old_val, new_val); // new array after using std::replace cout << "New Array:"; for (int i = 0; i < n; i++) cout << ' ' << arr[i]; cout << '\n'; return 0; }
Original Array: 10 20 30 30 20 10 10 20 New Array: 10 99 30 30 99 10 10 99
std::reemplazar_si
Asigna nuevo_valor a todos los elementos en el rango [primero, último] para los cuales pred devuelve verdadero.
Plantilla de función:
void replace_if (ForwardIterator first, ForwardIterator last, UnaryPredicate pred, const T& new_value) first, last : Forward iterators to the initial and final positions in a sequence of elelments. pred : Unary function that accepts an element in the range as argument, and returns a value convertible to bool.The returned value indicate whether the element is to be replaced (if true, it is replaced). The function shall not modify its argument. old_value : Value to be replaced. new_value : Replacement value.
Ejemplos:
Input : 1 2 3 4 5 6 7 8 9 10 Output : 0 2 0 4 0 6 0 8 0 10 // Replaced all odd values to 0. Input : 10 20 30 30 20 10 10 20 Output : 10 4 30 30 4 10 10 4 // Replaced all number divisible by 4 to 4.
CPP
// CPP code to find all the elements that are odd // and replace them with 0. // using std::replace_if #include <bits/stdc++.h> using namespace std; // Function that is used in std::replace_if // If number is odd return 1, else 0 // 1 (True) means replace the number // 0 (False) means does not replace bool IsOdd(int i) { return ((i % 2) == 1); } // Driver code int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int n = sizeof(arr) / sizeof(arr[0]); // print old array cout << "Original Array:"; for (int i = 0; i < n; i++) cout << ' ' << arr[i]; cout << '\n'; // replacement value int new_val = 0; // replace_if function replace_if(arr, arr + n, IsOdd, new_val); // new array after using std::replace cout << "New Array:"; for (int i = 0; i < n; i++) cout << ' ' << arr[i]; cout << '\n'; return 0; }
Original Array: 1 2 3 4 5 6 7 8 9 10 New Array: 0 2 0 4 0 6 0 8 0 10
También puede agregar cualquier tipo de función en std::replace_if que solo puede tener un argumento.
Este artículo es una contribución de Sachin Bisht . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
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