Array de algoritmos en C++ STL (all_of, any_of, none_of, copy_n e iota)

Desde C++11 en adelante, se agregan algunos algoritmos nuevos e interesantes en STL de C++. Estos algoritmos operan en una array y son útiles para ahorrar tiempo durante la codificación y, por lo tanto, también son útiles en la programación competitiva.

todo_de()

Esta función opera en toda la gama de elementos de la array y puede ahorrar tiempo para ejecutar un ciclo para verificar cada elemento uno por uno. Comprueba una propiedad dada en cada elemento y devuelve verdadero cuando cada elemento en el rango satisface la propiedad especificada; de lo contrario, devuelve falso.

// C++ code to demonstrate working of all_of()
#include<iostream>
#include<algorithm> // for all_of()
using namespace std;
int main()
{
    // Initializing array
    int ar[6] =  {1, 2, 3, 4, 5, -6};
  
    // Checking if all elements are positive
    all_of(ar, ar+6, [](int x) { return x>0; })?
          cout << "All are positive elements" :
          cout << "All are not positive elements";
  
    return 0;
  
}

Producción:

All are not positive elements

En el código anterior, -6 siendo un elemento negativo niega la condición y devuelve falso.

cualquiera de()

Esta función comprueba un rango dado si hay incluso un elemento que satisfaga una propiedad determinada mencionada en la función. Devuelve verdadero si al menos un elemento satisface la propiedad; de lo contrario, devuelve falso.

// C++ code to demonstrate working of any_of()
#include<iostream>
#include<algorithm> // for any_of()
using namespace std;
int main()
{
    // Initializing array
    int ar[6] =  {1, 2, 3, 4, 5, -6};
  
    // Checking if any element is negative
    any_of(ar, ar+6, [](int x){ return x<0; })?
          cout << "There exists a negative element" :
          cout << "All are positive elements";
  
    return 0;
  
}

Producción:

There exists a negative element

En el código anterior, -6 hace que la condición sea positiva.

ninguno de()

Esta función devuelve verdadero si ninguno de los elementos satisface la condición dada; de lo contrario, devuelve falso.

// C++ code to demonstrate working of none_of()
#include<iostream>
#include<algorithm> // for none_of()
using namespace std;
int main()
{
    // Initializing array
    int ar[6] =  {1, 2, 3, 4, 5, 6};
  
    // Checking if no element is negative
    none_of(ar, ar+6, [](int x){ return x<0; })?
          cout << "No negative elements" :
          cout << "There are negative elements";
  
    return 0;
}

Producción:

No negative elements

Como todos los elementos son positivos, la función devuelve verdadero.

copiar_n()

copy_n() copia los elementos de una array en una nueva array. Este tipo de copia crea una copia profunda de la array. Esta función toma 3 argumentos, el nombre de la array de origen, el tamaño de la array y el nombre de la array de destino.

// C++ code to demonstrate working of copy_n()
#include<iostream>
#include<algorithm> // for copy_n()
using namespace std;
int main()
{
    // Initializing array
    int ar[6] =  {1, 2, 3, 4, 5, 6};
  
    // Declaring second array
    int ar1[6];
  
    // Using copy_n() to copy contents
    copy_n(ar, 6, ar1);
  
    // Displaying the copied array
    cout << "The new array after copying is : ";
    for (int i=0; i<6 ; i++)
       cout << ar1[i] << " ";
  
    return 0;
  
}

Producción:

The new array after copying is : 1 2 3 4 5 6

En el código anterior, los elementos de ar se copian en ar1 usando copy_n()

iota()

Esta función se utiliza para asignar valores continuos a la array. Esta función acepta 3 argumentos, el nombre de la array, el tamaño y el número inicial.

// C++ code to demonstrate working of iota()
#include<iostream>
#include<numeric> // for iota()
using namespace std;
int main()
{
    // Initializing array with 0 values
    int ar[6] =  {0};
  
    // Using iota() to assign values
    iota(ar, ar+6, 20);
  
    // Displaying the new array
    cout << "The new array after assigning values is : ";
    for (int i=0; i<6 ; i++)
       cout << ar[i] << " ";
  
    return 0;
  
}

Producción:

The new array after assigning values is : 20 21 22 23 24 25

En el código anterior, los valores continuos se asignan a la array usando iota().

Este artículo es una contribución de Manjeet Singh . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@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

Deja una respuesta

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