min_element

De cppreference.com
Saltar a: navegación, buscar

Sintaxis:

#include <algorithm>
 
template< class ForwardIterator >
ForwardIterator min_element( ForwardIterator inicio, ForwardIterator fin );
 
template< class ForwardIterator, class Compare >
ForwardIterator min_element( ForwardIterator inicio, ForwardIterator fin, Comparador p );

El algoritmo min_element y su símil max_element encuentran el menor (o mayor) elemento en el rango [inicio, final). La primera forma usa el operador < mientras la segunda usa un criterio de comparación p.

min_element y max_element se ejecutan en tiempo lineal respecto de la cantidad de elementos en el rango.

Contenido

[editar] Parámetros

inicio, fin -- iteradores que delimitan el rango a examinar.

p - un criterio de comparación que sigue el comportamiento de operator<: tiene la firma bool p(T, T) y retorna true si el primer argumento es "menor" que el segundo.

[editar] Valor Retornado

Un iterador apuntando al lugar donde se encuentra el elemento menor.

[editar] Función Equivalente

template<class ForwardIterator, class Comparador>
ForwardIterator min_element(ForwardIterator inicio, ForwardIterator fin, Comparador p) 
{
    if (inicio == fin)) {
        return fin;
        }
    ForwardIterator candidato = inicio;
    ++inicio;
    for (; inicio != fin; ++inicio) {
        if (p(*inicio, *candidato)) {
            candidato = inicio;
        }
    }
    return candidato;
}

[editar] Ejemplo

#include <algorithm>
#include <iostream>
#include <vector>
 
int main()
{
    int data[] = { 3, 1, 4, 1, 5, 9 };
    std::vector<int> v(data, data+6);
 
    std::vector<int>::iterator result = std::min_element(v.begin(), v.end());
    std::cout << "min element at: " << std::distance(v.begin(), result);
 
    return 0;
}

Salida:

max element at: 2

[editar] Ver También

max, min, max_element

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas
Otros idiomas