función set::upper_bound() en C++ STL

El set::upper_bound() es una función incorporada en C++ STL que devuelve un iterador que apunta al siguiente elemento inmediato que es mayor que k. Si la clave pasada en el parámetro excede la clave máxima en el contenedor, entonces el iterador devolvió puntos al siguiente del último elemento (que se puede identificar usando la función set::end() ) en el contenedor del conjunto. 

La complejidad temporal de set::upper_bound() es O(logn) , donde n es el tamaño del conjunto.

Sintaxis:

set_name.upper_bound(key)

Parámetros: esta función acepta una única clave de parámetro obligatoria que especifica el elemento cuyo límite superior se va a devolver. Valor devuelto: la función devuelve un iterador que apunta al siguiente elemento inmediato que es justo mayor que k. Si la clave pasada en el parámetro excede la clave máxima en el contenedor, entonces el iterador apunta a std::end() que apunta al elemento junto al último elemento del conjunto. Ejemplo 1: El siguiente programa ilustra la función anterior: 

CPP

// CPP program to demonstrate the
// set::upper_bound() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
    set<int> s;
 
    // Function to insert elements
    // in the set container
    s.insert(1);
    s.insert(4);
    s.insert(2);
    s.insert(5);
    s.insert(6);
 
    cout << "The set elements are: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
 
    // when 2 is present
    // points to next element after 2
    auto it = s.upper_bound(2);
    cout << "\nThe upper bound of key 2 is ";
    cout << (*it) << endl;
 
    // when 3 is not present
    // points to next greater after 3
    it = s.upper_bound(3);
    cout << "The upper bound of key 3 is ";
    cout << (*it) << endl;
 
    return 0;
}
Producción:

The set elements are: 1 2 4 5 6 
The upper bound of key 2 is 4
The upper bound of key 3 is 4

Ejemplo 2: a continuación se muestra un código mejor que también verifica si el elemento dado es mayor o igual que el mayor. 

CPP

// CPP program to demonstrate the
// set::upper_bound() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
    set<int> s;
 
    // Function to insert elements
    // in the set container
    s.insert(1);
    s.insert(4);
    s.insert(2);
    s.insert(5);
    s.insert(6);
 
    int key = 8;
    auto it = s.upper_bound(key);
    if (it == s.end())
        cout << "The given key is greater "
                "than or equal to the largest element \n";
    else
        cout << "The immediate greater element "
             << "is " << *it << endl;
 
    key = 3;
    it = s.upper_bound(key);
    if (it == s.end())
        cout << "The given key is greater "
                "than or equal to the largest element \n";
    else
        cout << "The immediate greater element "
             << "is " << *it << endl;
 
    return 0;
}
Producción:

The given key is greater than or equal to the largest element 
The immediate greater element is 4

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 *