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

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

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

replace_copy_if () función es una función de biblioteca de algoritmo cabecera, se utiliza para reemplazar valor en el intervalo dado y copiar los elementos en la secuencia resultado con valores sustituido, que acepta una gama [principio, fin] de la secuencia, la posición de la secuencia de resultado de inicio, una función unaria (que se utiliza para validar los elementos) y el nuevo valor, que sustituye a la de todos los elementos que pasan la prueba class aplica en función unaria (es decir, si función retorna verdadero) con la nuevo_valor en el rango y copia el área de distribución para el comienzo en secuencia resultado.

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

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

    std::replace_copy_if(
iterator start,
iterator end,
iterator start_result,
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.
  • iterador start_result – ¿Es el iterador comienzo de la secuencia resultado.
  • 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: iterador – devuelve un iterador que apunta al elemento que sigue al último elemento que se escribe en la secuencia resultado.

Ejemplo: programa

    //function to test EVEN numbers
bool isEVEN(int x){
if (x % 2 == 0) return 1;
else return 0;
}
Input:
//an array (source)
int arr[] = { 10, 11, 12, 13, 14, 15, 100, 200, 300 };
//declaring a vector (result sequence)
vector<int> v(6);
//copying 6 elements of array to vector
//by replacing 10 to -1
replace_copy_if(arr + 0, arr + 6, v.begin(), isEVEN, -1);
Output:
vector (v): -1 11 -1 13 -1 15

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

En este programa, tenemos una matriz y estamos copiando sus 6 elementos a un vector mediante la sustitución de todo elementos incluso con -1.

//C++ STL program to demonstrate use of
//std::replace_copy_if() function
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
//function to test EVEN numbers
bool isEVEN(int x)
{
if (x % 2 == 0)
return 1;
else
return 0;
}
//main code
int main()
{
//an array
int arr[] = { 10, 11, 12, 13, 14, 15, 100, 200, 300 };
//declaring a vector
vector<int> v(6);
//printing elements
cout << "before replacing, Array (arr): ";
for (int x : arr)
cout << x << " ";
cout << endl;
cout << "vector (v): ";
for (int x : v)
cout << x << " ";
cout << endl;
//copying 6 elements of array to vector
//by replacing 10 to -1
replace_copy_if(arr + 0, arr + 6, v.begin(), isEVEN, -1);
//printing vector elements
cout << "after replacing, Array (arr): ";
for (int x : arr)
cout << x << " ";
cout << endl;
cout << "vector (v): ";
for (int x : v)
cout << x << " ";
cout << endl;
return 0;
}

salida

before replacing, Array (arr): 10 11 12 13 14 15 100 200 300
vector (v): 0 0 0 0 0 0
after replacing, Array (arr): 10 11 12 13 14 15 100 200 300
vector (v): -1 11 -1 13 -1 15

Referencia: C ++ std :: replace_copy_if ()


Deja un comentario

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