Biblioteca de algoritmos C ++ - Función is_partitioned ()

Descripción

La función C ++ std::algorithm::is_partitioned()comprueba si el rango está dividido o no. Para rangos vacíos, esta función devuelve verdadero.

Declaración

A continuación se muestra la declaración de la función std :: algorítm :: is_partitioned () del encabezado std :: algorítmico.

C ++ 11

template <class InputIterator, class UnaryPredicate>
bool is_partitioned (InputIterator first, InputIterator last, UnaryPredicate pred);

Parámetros

  • first - Iterador de entrada a la posición inicial.

  • last - Ingrese el iterador a la posición final.

  • pred - Una función unaria que acepta un elemento y devuelve un bool.

Valor devuelto

Devuelve verdadero si el rango está particionado; de lo contrario, devuelve falso.

Excepciones

Lanza una excepción si pred o una operación en un iterador arroja una excepción.

Tenga en cuenta que los parámetros no válidos provocan un comportamiento indefinido.

Complejidad del tiempo

Lineal.

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: algorítm :: is_partitioned ().

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool is_even(int n) {
   return (n % 2 == 0);
}

int main(void) {
   vector<int> v = {1, 2, 3, 4, 5};
   bool result;

   result = is_partitioned(v.begin(), v.end(), is_even);

   if (result == false)
      cout << "Vector is not partitioned." << endl;

   partition(v.begin(), v.end(), is_even);

   result = is_partitioned(v.begin(), v.end(), is_even);

   if (result == true)
      cout << "Vector is paritioned." << endl;

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Vector is not partitioned.
Vector is paritioned.