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.
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
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.
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);
}
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());
lower_bound()
-Methode in der Vector-STL verwendenJetzt 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);
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";
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;
}
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.
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!