Τι είναι η μέθοδος low_Bound() στη C++

Ti Einai E Methodos Low Bound Ste C



Η γλώσσα προγραμματισμού C++ προσφέρει ένα ευρύ φάσμα λειτουργιών και μεθόδων που χρησιμοποιούνται ευρέως. Η μέθοδος low_bound() είναι μια τέτοια συνάρτηση που χρησιμοποιείται για την εύρεση της πρώτης εμφάνισης μιας δεδομένης τιμής σε ένα ταξινομημένο κοντέινερ. Αυτό το άρθρο καλύπτει τη σύνταξη, τις παραμέτρους, τις επιστρεφόμενες τιμές και ένα παράδειγμα κώδικα για τη μέθοδο low_bound() στη C++.

Τι είναι η μέθοδος low_bound();

Η μέθοδος low_bound() στη C++ βρίσκει την πρώτη εμφάνιση μιας δεδομένης τιμής σε ένα ταξινομημένο κοντέινερ. Είναι μέρος της βιβλιοθήκης στη C++ και χρησιμοποιείται για την εκτέλεση δυαδικών αναζητήσεων σε πίνακες, διανύσματα και άλλα ταξινομημένα κοντέινερ. Η μέθοδος low_bound() επιστρέφει έναν επαναλήπτη που δείχνει στο πρώτο στοιχείο σε ένα καθορισμένο εύρος ενός κοντέινερ, το οποίο δεν είναι μικρότερο από την παρεχόμενη τιμή.

Σύνταξη







Η μέθοδος low_bound() στη C++ έχει δύο παραλλαγές: μια προεπιλογή και μια προσαρμοσμένη σύνταξη.



Προεπιλεγμένη σύνταξη

Η προεπιλεγμένη σύνταξη παίρνει έναν ForwardIterator που δείχνει το πρώτο και το τελευταίο στοιχείο της περιοχής προς αναζήτηση, αντίστοιχα, και μια τιμή για τη σύγκριση των στοιχείων της περιοχής.



ForwardIterator low_bound ( Το ForwardIterator πρώτα , ForwardIterator τελευταίο , συνθ Τ & val ) ;

Προσαρμοσμένη Σύνταξη

Η προσαρμοσμένη σύνταξη λαμβάνει επιπλέον μια συνάρτηση δυαδικού κατηγορήματος που ορίζεται από το χρήστη, η οποία ακολουθεί αυστηρή αδύναμη σειρά για τη σειρά των στοιχείων.





ForwardIterator low_bound ( Το ForwardIterator πρώτα , ForwardIterator τελευταίο , συνθ Τ & val , Συγκρίνετε συγκρ ) ;

Παράμετροι

Η μέθοδος low_bound() στη C++ παίρνει τρεις παραμέτρους.

Πρώτο τελευταίο: Οι δύο πρώτες παράμετροι, 'first' και 'last', καθορίζουν το εύρος [first, last) εντός του οποίου η μέθοδος αναζητά το κάτω όριο. Το εύρος καθορίζεται από δύο παραμέτρους, δηλαδή «πρώτο» και «τελευταίο». Το εύρος περιλαμβάνει όλα τα στοιχεία μεταξύ του 'πρώτου' και του 'τελευταίου' επαναλήπτη, αλλά εξαιρεί το στοιχείο στο οποίο επισημαίνεται ο 'τελευταίος' επαναλήπτης.



val: Η τρίτη παράμετρος της μεθόδου low_bound() αναφέρεται ως 'val'. Αντιπροσωπεύει την τιμή του κάτω ορίου που πρέπει να βρεθεί εντός του καθορισμένου εύρους. Όταν καλείται η μέθοδος low_bound(), αναζητά το πρώτο στοιχείο εντός της καθορισμένης περιοχής ενός κοντέινερ που είναι μεγαλύτερο ή ίσο με τη δεδομένη τιμή 'val'.

comp: Η μέθοδος low_bound() μπορεί επίσης να δεχθεί μια δυαδική συνάρτηση σύγκρισης ως τέταρτη παράμετρό της. Χρειάζονται δύο ορίσματα: Ο τύπος που επισημαίνεται από το ForwardIterator , και το δεύτερο είναι val . Στη συνέχεια, η συνάρτηση επιστρέφει μια Boolean τιμή με βάση μια σύγκριση μεταξύ των δύο ορισμάτων. Το όρισμα comp δεν αλλάζει κανένα από τα ορίσματά του και μπορεί να είναι μόνο δείκτης συνάρτησης ή αντικείμενο συνάρτησης.

Επιστρεφόμενη Αξία

Η low_bound() επιστρέφει έναν επαναλήπτη που δείχνει προς το πρώτο στοιχείο που είναι μεγαλύτερο ή ίσο με το val . Εάν όλα τα στοιχεία στο καθορισμένο εύρος ενός κοντέινερ είναι μικρότερα από τη δεδομένη τιμή val , η μέθοδος low_bound() επιστρέφει έναν επαναλήπτη που δείχνει στο τελευταίο στοιχείο της περιοχής και εάν όλα τα στοιχεία είναι μεγαλύτερα από val , δίνει έναν επαναλήπτη που δείχνει στο πρώτο στοιχείο της περιοχής.

Παράδειγμα κώδικα

Αυτός ο κώδικας C++ δείχνει τη χρήση της συνάρτησης std::lower_bound() για την εύρεση του πρώτου στοιχείου σε ένα ταξινομημένο διάνυσμα που δεν είναι μικρότερο από μια δεδομένη τιμή.

#include

ενθ κύριος ( )

{

// Διάνυσμα εισόδου

std :: διάνυσμα < διπλό > αξίες { 10 , δεκαπέντε , είκοσι , 25 , 30 } ;

// Διάνυσμα εκτύπωσης

std :: cout << 'Το διάνυσμα περιέχει:' ;

Για ( ανυπόγραφο ενθ Εγώ = 0 ; Εγώ < αξίες. Μέγεθος ( ) ; Εγώ ++ )

std :: cout << '' << αξίες [ Εγώ ] ;

std :: cout << ' \n ' ;

std :: διάνυσμα < διπλό >:: επαναλήπτης it1 , it2 , it3 ;

// std :: low_bound

it1 = std :: χαμηλότερο όριο ( αξίες. αρχίζουν ( ) , αξίες. τέλος ( ) , 13 ) ;

it2 = std :: χαμηλότερο όριο ( αξίες. αρχίζουν ( ) , αξίες. τέλος ( ) , 23 ) ;

it3 = std :: χαμηλότερο όριο ( αξίες. αρχίζουν ( ) , αξίες. τέλος ( ) , 33 ) ;

std :: cout

<< ' \n low_bound για το στοιχείο 13 στη θέση: '

<< ( it1 - αξίες. αρχίζουν ( ) ) ;

std :: cout

<< ' \n low_bound για το στοιχείο 23 στη θέση: '

<< ( it2 - αξίες. αρχίζουν ( ) ) ;

std :: cout

<< ' \n low_bound για το στοιχείο 33 στη θέση: '

<< ( it3 - αξίες. αρχίζουν ( ) ) ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Ο κώδικας ξεκινά ορίζοντας ένα std:: vector τύπου διπλής ονομασίας τιμές και αρχικοποιώντας το με ορισμένες τιμές. Στη συνέχεια εκτυπώνει τα στοιχεία του διανύσματος χρησιμοποιώντας έναν βρόχο for.

Στη συνέχεια, ο κώδικας δηλώνει τρεις μεταβλητές std::vector::iterator με τα ονόματα it1, it2 και it3. Αυτές οι μεταβλητές θα χρησιμοποιηθούν για την αποθήκευση των αποτελεσμάτων της κλήσης std::lower_bound() στο διάνυσμα τιμών με διαφορετικά ορίσματα.

Η συνάρτηση std::lower_bound() καλείται με τρεις διαφορετικές τιμές: 13, 23 και 33. Σε κάθε κλήση, η low_bound() δίνει έναν επαναλήπτη που δείχνει προς το πρώτο στοιχείο του διανύσματος που είναι μεγαλύτερο ή ίσο με το καθορισμένη τιμή.

Στη συνέχεια, ο κώδικας εκτυπώνει τις θέσεις αυτών των στοιχείων στο διάνυσμα αφαιρώντας τις values.begin() iterator από τον επαναλήπτη που επιστρέφεται από την std::lower_bound(), η οποία δίνει τον δείκτη του στοιχείου στο διάνυσμα.

Παραγωγή

συμπέρασμα

Η μέθοδος low_bound() στη C++ βρίσκει την πρώτη εμφάνιση μιας δεδομένης τιμής σε ένα ταξινομημένο κοντέινερ. Είναι μέρος της βιβλιοθήκης στη C++ και μπορεί να χρησιμοποιηθεί για την εκτέλεση δυαδικών αναζητήσεων σε πίνακες, διανύσματα και άλλα ταξινομημένα κοντέινερ. Η μέθοδος δίνει έναν επαναλήπτη που δείχνει προς το πρώτο στοιχείο σε ένα εύρος που δεν είναι μικρότερο από τη δεδομένη τιμή. Διαβάστε περισσότερα για τη μέθοδο low_bound() σε αυτό το άρθρο.