función std :: replace_if () con ejemplo en STL C ++

C ++ STL | std :: replace_if () la función : Aquí, vamos a aprender sobre la replace_if () la función del algoritmo de cabecera en C ++ STL con el ejemplo .

C ++ STL std :: replace_if () función

replace_if función () es una función de biblioteca de algoritmo cabecera, se utiliza para sustituir el valor en un intervalo determinado, basándose en la función unaria dado que debe aceptar un elemento en el rango como un argumento y devuelve el valor que debe ser convertible a bool (como 0 o 1), devuelve valor indica si los elementos dados puede ser sustituido o no?

Nota: Para utilizar función replace_if () – class & lt; algoritmo de & gt; cabecera o puede utilizar sencilla . & Lt; bits / STDC ++ h & gt; archivo de cabecera.

Sintaxis de std :: replace_if () la función

    std::replace_if(
iterator start,
iterator end,
unary_function,
const T& new_value);

Parámetro (s):

  • iterador empezar, iterador final – estos son los iteradores que apuntan a las posiciones de inicio y finalización en el recipiente, en el que tenemos para ejecutar la operación de sustitución.
  • unary_function – es una función unaria que realizará la comprobación de condición en todos los elementos en el intervalo dado y los elementos que pasan a la condición será reemplazado.
  • nuevo_valor – un valor que se asignará en lugar de un old_value.

include valor: class – Devuelve mención.

Ejemplo: (Sustitución de número PAR) programa

    //function to check EVEN value
bool isEVEN(int x)
{
if (x % 2 == 0)
return 1;
else
return 0;
}
Input:
vector<int> v{ 10, 20, 33, 23, 11, 40, 50 };
//replacing all EVEN elements with -1
replace_if(v.begin(), v.end(), isEVEN, -1);
Output:
-1 -1 33 23 11 -1 -1

C ++ STL para demostrar el uso de std :: replace_if () función

En este programa, tenemos un vector y la sustitución de todos los números pares con -1 .

//C++ STL program to demonstrate use of
//std::replace_if() function
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
//function to check EVEN value
bool isEVEN(int x)
{
if (x % 2 == 0)
return 1;
else
return 0;
}
int main()
{
//vector
vector<int> v{ 10, 20, 33, 23, 11, 40, 50 };
//printing vector elements
cout << "before replacing, v: ";
for (int x : v)
cout << x << " ";
cout << endl;
//replacing all EVEN elements with -1
replace_if(v.begin(), v.end(), isEVEN, -1);
//printing vector elements
cout << "after replacing, v: ";
for (int x : v)
cout << x << " ";
cout << endl;
return 0;
}

salida

before replacing, v: 10 20 33 23 11 40 50
after replacing, v: -1 -1 33 23 11 -1 -1

Referencia: C ++ std :: replace_if ()


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *