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

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

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

copy_if () función es una función de biblioteca de algoritmo cabecera, se utiliza para copiar los elementos de un contenedor, copia el ciertos elementos (que satisfacer la condición dada) de un recipiente a partir de la posición de inicio dado a otro contenedor desde la posición inicial dado.

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

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

    std::copy_n(
iterator source_first,
iterator source_end,
iterator target_start,
UnaryPredicate pred);

Parámetro (s):

  • iterador source_first, iterador source_end – son las posiciones Iterador de la contenedor de la fuente.
  • iterador target_start – ¿Es el iterador comienzo del contenedor de destino.
  • UnaryPredicate pred – función unario que acepta un elemento en el rango como un argumento, y devuelve un valor convertible a bool.

include valor: iterador – es un iterador hasta el final de la zona de destino, donde se han copiado elementos.

Ejemplo: programa

    Input:
//declaring & initializing an int array
int arr[] = { 10, 20, 30, 40, 50 };
//vector declaration
vector<int> v1(5);
//copying 5 array elements to the vector
copy_n(arr, 5, v1.begin());
Output:
//if we print the value
arr: 10 20 30 40 50
v1: 10 20 30 40 50

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

En este ejemplo, estamos copiando sólo los elementos positivos de la matriz para el vector.

//C++ STL program to demonstrate use of
//std::copy_if() function
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
//declaring & initializing an int array
int arr[] = { 10, 20, 30, -10, -20, 40, 50 };
//vector declaration
vector<int> v1(7);
//copying 5 array elements to the vector
copy_if(arr, arr + 7, v1.begin(), [](int i) { return (i >= 0); });
//printing array
cout << "arr: ";
for (int x : arr)
cout << x << " ";
cout << endl;
//printing vector
cout << "v1: ";
for (int x : v1)
cout << x << " ";
cout << endl;
return 0;
}

salida

arr: 10 20 30 -10 -20 40 50
v1: 10 20 30 40 50 0 0

Referencia: C ++ std :: copy_if ()


Deja un comentario

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