boost::algorithm::is_partitioned() en la biblioteca de C++

La función is_partitioned() en la biblioteca boost de C++ se encuentra bajo el encabezado ‘boost/algorithm/cxx11/is_partitioned.hpp’, que prueba si la secuencia dada está dividida de acuerdo con el predicado dado o no. La partición aquí significa que todos los elementos de la secuencia que satisfacen el predicado están al comienzo de la secuencia.
Sintaxis
 

bool is_partitioned ( InputIterator first, InputIterator last, Predicate p ) 

bool is_partitioned ( const Range &r, Predicate p )

 
Parámetros : la función acepta parámetros como se describe a continuación: 
 

  • primero : especifica los iteradores de entrada a las posiciones iniciales en una secuencia.
  • segundo : especifica los iteradores de entrada a las posiciones finales en una secuencia.
  • p: Especifica el predicado de comparación si se especifica.
  • r : Especifica completamente el rango dado.

Valor de retorno : la función devuelve verdadero si la secuencia completa se ordena de acuerdo con los criterios dados; de lo contrario, devuelve falso. 
A continuación se muestra la implementación del enfoque anterior: 
Programa-1
 

CPP

// C++ program to implement the
// above mentioned function
 
#include <bits/stdc++.h>
#include <boost/algorithm/cxx11/is_partitioned.hpp>
using namespace std;
 
// Predicate function to check
// if the element is odd or not
bool isOdd(int i)
{
    return i % 2 == 1;
}
// Drivers code
int main()
{
 
    // Declares the sequence with
    int c[] = { 1, 2, 5, 6, 8 };
 
    // Run the function
    bool ans
        = boost::algorithm::is_partitioned(c, isOdd);
 
    // Condition to check
    if (ans == 1)
        cout << "Sequence is partitioned";
    else
        cout << "Sequence is not partitioned";
    return 0;
}
Producción: 

Sequence is not partitioned

 

Programa-2
 

CPP

// C++ program to implement the
// above mentioned function
 
#include <bits/stdc++.h>
#include <boost/algorithm/cxx11/is_partitioned.hpp>
using namespace std;
 
// Predicate function to check
// if the element is odd or not
bool isEven(int i)
{
    return i % 2 == 0;
}
// Drivers code
int main()
{
 
    // Declares the sequence with
    int c[] = { 4, 2, 5, 6, 8 };
 
    // Run the function
    bool ans
        = boost::algorithm::is_partitioned(c,
                                           c + 2,
                                           isEven);
 
    // Condition to check
    if (ans == 1)
        cout << "Sequence is partitioned";
    else
        cout << "Sequence is not partitioned";
    return 0;
}
Producción: 

Sequence is partitioned

 

Referencia : https://www.boost.org/doc/libs/1_70_0/libs/algorithm/doc/html/the_boost_algorithm_library/CXX11/is_sorted.html
 

Publicación traducida automáticamente

Artículo escrito por gopaldave 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 *