Programa de C++ que Utiliza el Método lower_bound del Vector STL

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo usar el método lower_bound() en el Vector STL en C++. La implementación práctica de este método se mostrará en el laboratorio.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/AdvancedConceptsGroup(["Advanced Concepts"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp/BasicsGroup -.-> cpp/operators("Operators") cpp/BasicsGroup -.-> cpp/arrays("Arrays") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/AdvancedConceptsGroup -.-> cpp/pointers("Pointers") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/StandardLibraryGroup -.-> cpp/string_manipulation("String Manipulation") cpp/StandardLibraryGroup -.-> cpp/standard_containers("Standard Containers") subgraph Lab Skills cpp/operators -.-> lab-96218{{"Programa de C++ que Utiliza el Método lower_bound del Vector STL"}} cpp/arrays -.-> lab-96218{{"Programa de C++ que Utiliza el Método lower_bound del Vector STL"}} cpp/for_loop -.-> lab-96218{{"Programa de C++ que Utiliza el Método lower_bound del Vector STL"}} cpp/function_parameters -.-> lab-96218{{"Programa de C++ que Utiliza el Método lower_bound del Vector STL"}} cpp/pointers -.-> lab-96218{{"Programa de C++ que Utiliza el Método lower_bound del Vector STL"}} cpp/output -.-> lab-96218{{"Programa de C++ que Utiliza el Método lower_bound del Vector STL"}} cpp/string_manipulation -.-> lab-96218{{"Programa de C++ que Utiliza el Método lower_bound del Vector STL"}} cpp/standard_containers -.-> lab-96218{{"Programa de C++ que Utiliza el Método lower_bound del Vector STL"}} end

Crear un Vector y Llenarlo con Enteros

¿Qué son los Vectores?

Los vectores son arrays dinámicos con la capacidad adicional de redimensionarse y ajustar automáticamente su tamaño cuando insertamos o eliminamos elementos. Los vectores ofrecen más flexibilidad en comparación con los arrays estáticos normales.

En este paso, crearemos un vector vacío e insertaremos algunos elementos en él. Tenga en cuenta que como los vectores son dinámicos, no necesitamos especificar el tamaño del vector antes de insertar elementos.

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main()
{
    // create an empty vector
    vector<int> v;

    // insert elements into the vector
    v.push_back(10);
    v.push_back(12);
    v.push_back(35);
    v.push_back(65);
    v.push_back(21);
    v.push_back(90);
}

Ordenando los Elementos del Vector

En este paso, ordenaremos los elementos del vector en orden ascendente utilizando la función sort() de la biblioteca <algorithm>.

// sorting the vector in ascending order
sort(v.begin(), v.end());

Usando el Método lower_bound() en el Vector STL

Ahora, usaremos el método lower_bound() para encontrar un iterador que apunte al primer elemento que tiene un valor no menor que el valor dado.

// define the iterator low
vector<int>::iterator low;

// use lower_bound to find the first element that's not less than 35
low = lower_bound(v.begin(), v.end(), 35);

Imprimiendo los Resultados

En este paso, imprimiremos el índice del límite inferior de 35 y algunas notas sobre el resultado.

// print the index of the lower bound of 35
cout << "\nEl índice (empezando desde 0) del lower_bound de 35 es: " << (low - v.begin()) << '\n';

// print some notes
cout << "\nTenga en cuenta que según la definición, también considera el número en sí mismo.\n\n";

Código Completo

Aquí está el código completo para el archivo main.cpp:

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main()
{
    // create an empty vector
    vector<int> v;

    // insert elements into the vector
    v.push_back(10);
    v.push_back(12);
    v.push_back(35);
    v.push_back(65);
    v.push_back(21);
    v.push_back(90);

    // print the elements of the vector
    cout << "Los elementos del Vector son: ";

    for (int i : v)
    {
        cout << i << " ";
    }

    // sorting the vector in ascending order
    sort(v.begin(), v.end());

    // print the sorted vector
    cout << "\n\nLos elementos del Vector después de la clasificación son: ";
    for (int i : v)
    {
        cout << i << " ";
    }

    // define the iterator low
    vector<int>::iterator low;

    // use lower_bound to find the first element that's not less than 35
    low = lower_bound(v.begin(), v.end(), 35);

    // print the index of the lower bound of 35
    cout << "\n\nEl índice (empezando desde 0) del lower_bound de 35 es: " << (low - v.begin()) << '\n';

    // print some notes
    cout << "\nTenga en cuenta que según la definición, también considera el número en sí mismo.\n\n";
    return 0;
}

Ejecutando el programa

Para ejecutar el programa, abra una ventana de terminal y navegue hasta el directorio que contiene el archivo main.cpp. Utilice los siguientes comandos para compilar y ejecutar el programa:

g++ main.cpp -o main && ./main

Esto debería compilar y ejecutar el programa, y debería ver la siguiente salida:

Los elementos del Vector son: 10 12 35 65 21 90

Los elementos del Vector después de la clasificación son: 10 12 21 35 65 90

El índice (empezando desde 0) del lower_bound de 35 es: 3

Tenga en cuenta que según la definición, también considera el número en sí mismo.

Resumen

¡Felicidades! En este laboratorio, aprendiste sobre el método lower_bound() en el Vector STL en C++, y viste su implementación utilizando vectores. Con estas habilidades, puedes crear, ordenar y buscar elementos en vectores con precisión. ¡Excelente trabajo!