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.