CPP-Programm mit der Vector-STL-Methode lower_bound

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie die lower_bound()-Methode in der C++-STL-Vector verwendet wird. Die praktische Implementierung dieser Methode wird im Lab gezeigt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) 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/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{{"CPP-Programm mit der Vector-STL-Methode lower_bound"}} cpp/arrays -.-> lab-96218{{"CPP-Programm mit der Vector-STL-Methode lower_bound"}} cpp/for_loop -.-> lab-96218{{"CPP-Programm mit der Vector-STL-Methode lower_bound"}} cpp/function_parameters -.-> lab-96218{{"CPP-Programm mit der Vector-STL-Methode lower_bound"}} cpp/pointers -.-> lab-96218{{"CPP-Programm mit der Vector-STL-Methode lower_bound"}} cpp/output -.-> lab-96218{{"CPP-Programm mit der Vector-STL-Methode lower_bound"}} cpp/string_manipulation -.-> lab-96218{{"CPP-Programm mit der Vector-STL-Methode lower_bound"}} cpp/standard_containers -.-> lab-96218{{"CPP-Programm mit der Vector-STL-Methode lower_bound"}} end

Ein Vector erstellen und ihn mit ganzen Zahlen füllen

Was sind Vektoren?

Vektoren sind dynamische Arrays mit der zusätzlichen Fähigkeit, sich selbst zu vergrößern und ihre Größe automatisch anzupassen, wenn wir Elemente einfügen oder löschen. Im Vergleich zu normalen statischen Arrays bieten Vektoren mehr Flexibilität.

In diesem Schritt werden wir einen leeren Vector erstellen und einige Elemente einfügen. Beachten Sie, dass Vektoren dynamisch sind, sodass wir die Größe des Vectors nicht vor dem Einfügen von Elementen angeben müssen.

#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);
}

Die Elemente des Vectors sortieren

In diesem Schritt werden wir die Elemente des Vectors in aufsteigender Reihenfolge mit der sort()-Funktion aus der <algorithm>-Bibliothek sortieren.

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

Die lower_bound()-Methode in der Vector-STL verwenden

Jetzt werden wir die lower_bound()-Methode verwenden, um einen Iterator zu finden, der auf das erste Element zeigt, dessen Wert nicht kleiner als der gegebene Wert ist.

// 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);

Die Ergebnisse ausgeben

In diesem Schritt werden wir den Index der unteren Schranke von 35 ausgeben und einige Anmerkungen zum Ergebnis machen.

// print the index of the lower bound of 35
cout << "\nThe index (starting from 0) of the lower_bound of 35 is: " << (low - v.begin()) << '\n';

// print some notes
cout << "\nNote that as per the definition, it also considers the number itself.\n\n";

Vollständiger Code

Hier ist der vollständige Code für die main.cpp-Datei:

#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 << "The elements of the Vector are: ";

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

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

    // print the sorted vector
    cout << "\n\nThe elements of the Vector after Sorting are: ";
    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\nThe index (starting from 0) of the lower_bound of 35 is: " << (low - v.begin()) << '\n';

    // print some notes
    cout << "\nNote that as per the definition, it also considers the number itself.\n\n";
    return 0;
}

Ausführen des Programms

Um das Programm auszuführen, öffnen Sie ein Terminalfenster und navigieren Sie zum Verzeichnis, in dem die main.cpp-Datei enthalten ist. Verwenden Sie die folgenden Befehle, um das Programm zu kompilieren und auszuführen:

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

Dies sollte das Programm kompilieren und ausführen, und Sie sollten die folgende Ausgabe sehen:

The elements of the Vector are: 10 12 35 65 21 90

The elements of the Vector after Sorting are: 10 12 21 35 65 90

The index (starting from 0) of the lower_bound of 35 is: 3

Note that as per the definition, it also considers the number itself.

Zusammenfassung

Glückwunsch! In diesem Lab haben Sie die lower_bound()-Methode in der Vector-STL in C++ kennengelernt und ihre Implementierung mit Vektoren gesehen. Mit diesen Fähigkeiten können Sie Vektoren präzise erstellen, sortieren und nach Elementen durchsuchen. Tolle Arbeit!