Πώς να χρησιμοποιήσετε τη συνάρτηση Upper_bound() στη C++

Pos Na Chresimopoiesete Te Synartese Upper Bound Ste C



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

Τι είναι η συνάρτηση upper_bound() στη C++

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







Έχει δύο διαφορετικούς τύπους επιχειρημάτων:



num upper_bound ( σε ένα. πρώτα , σε ένα. τελευταίος , αξία )

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



num upper_bound ( σε ένα. πρώτα , σε ένα. τελευταίος ,  τιμή, συγκρίνετε συγκρ )

Σε αυτήν την περίπτωση, η δυαδική συνάρτηση comp παράγει μια τιμή που μπορεί να μετατραπεί σε bool και δέχεται δύο παραμέτρους του ίδιου τύπου με τα στοιχεία της περιοχής. Εάν μια συγκεκριμένη συνθήκη υπαγορεύει ότι το πρώτο όρισμα δεν είναι υψηλότερο από το δεύτερο, η συνάρτηση πρέπει να επιστρέψει αληθές αποτέλεσμα και αν όχι, θα πρέπει να επιστρέψει ψευδές.





Πώς να χρησιμοποιήσετε τη συνάρτηση upper_bound() στη C++

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

Παράδειγμα 1: Χρήση της συνάρτησης upper_bound() για την εύρεση της θέσης ενός στοιχείου σε έναν ταξινομημένο πίνακα

Ακολουθεί ένα παράδειγμα, που χρησιμοποιεί τη συνάρτηση upper_bound() για να βρει τη θέση ενός στοιχείου σε έναν ταξινομημένο πίνακα ακεραίων και να το εμφανίσει στην οθόνη:



#include

#include

χρησιμοποιώντας χώρο ονομάτων std ;

ενθ κύριος ( )

{

ενθ πίνακας [ ] = { δεκαπέντε , 35 , Τέσσερα πέντε , 55 , 65 } ;

ενθ ένα = μέγεθος του ( πίνακας ) / μέγεθος του ( πίνακας [ 0 ] ) ;

cout << 'Ο πίνακας περιέχει:' ;

Για ( ενθ Εγώ = 0 ; Εγώ < ένα ; Εγώ ++ )

cout << πίνακας [ Εγώ ] << '' ;

cout << ' \n ' ;

ενθ σι = Τέσσερα πέντε ; // δήλωση και αρχικοποίηση μιας τιμής

ενθ * Π = άνω όριο ( συστοιχία, συστοιχία + α, β ) ;

cout << 'Ανώτατο όριο' << σι << 'είναι στη θέση:' << ( Π - πίνακας ) << ' \n ' ; // εμφάνιση της θέσης χρησιμοποιώντας αριθμητική δείκτη

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Πρώτα το πρόγραμμα ορίζει τα απαραίτητα αρχεία κεφαλίδας και τον πίνακα που περιέχει αριθμούς και στη συνέχεια χρησιμοποιεί τη συνάρτηση sizeof() για να πάρει το μέγεθος του πίνακα. Στη συνέχεια χρησιμοποιείται ένας βρόχος for για την εμφάνιση των στοιχείων του πίνακα και στη συνέχεια δηλώνεται ένας ακέραιος του οποίου η θέση στον πίνακα προσδιορίζεται χρησιμοποιώντας τον δείκτη και εμφανίζεται στην έξοδο:

Παράδειγμα 2: Χρήση της συνάρτησης upper_bound() για την εύρεση του επόμενου μεγαλύτερου στοιχείου σε ένα σύνολο

Ακολουθεί ένα παράδειγμα κώδικα που χρησιμοποιεί τη συνάρτηση upper_bound() για να βρει το επόμενο μεγαλύτερο στοιχείο από μια δεδομένη τιμή σε ένα σύνολο ακεραίων και να το εμφανίσει στην οθόνη:

#include

#include

#include <διάνυσμα>

χρησιμοποιώντας χώρο ονομάτων std ;

ενθ κύριος ( )

{

σειρά < ενθ > σε ένα = { δεκαπέντε , 25 , 35 , Τέσσερα πέντε , 55 } ; // δήλωση και προετοιμασία ενός συνόλου ακεραίων

cout << 'Δεδομένοι αριθμοί:' ;

Για ( αυτο ένα : σε ένα ) // εμφανίζει τα στοιχεία του συνόλου χρησιμοποιώντας βρόχο for βάσει εύρους

cout << ένα << '' ;

cout << ' \n ' ;

ενθ ένα = Τέσσερα πέντε ; // δήλωση και αρχικοποίηση μιας τιμής

αυτο το = άνω όριο ( σε ένα. αρχίζουν ( ) , σε ένα. τέλος ( ) , ένα ) ; // βρείτε το άνω όριο του x στο σύνολο χρησιμοποιώντας το upper_bound()

αν ( το ! = σε ένα. τέλος ( ) ) // ελέγξτε εάν ο επαναλήπτης είναι έγκυρος

cout << 'Ο επόμενος υψηλότερος αριθμός από' << ένα << ' είναι ' << * το << ' \n ' ; // εμφάνιση του στοιχείου χρησιμοποιώντας τον τελεστή παραπομπής

αλλού

cout << 'Δεν υπάρχει μεγαλύτερος αριθμός από' << ένα << ' \n ' ; // εμφανίζει ένα μήνυμα εάν δεν βρεθεί τέτοιο στοιχείο

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Πρώτα ο κώδικας ορίζει τα απαραίτητα αρχεία κεφαλίδας και μετά ορίζεται ένα διάνυσμα πέντε στοιχείων, μετά το διάνυσμα εμφανίζεται χρησιμοποιώντας την αυτόματη λέξη-κλειδί καθώς μπορεί να ορίσει αυτόματα τον τύπο δεδομένων των στοιχείων. Στη συνέχεια δηλώνεται μια μεταβλητή με τιμή 45 η οποία στη συνέχεια συγκρίνεται με το διάνυσμα που ορίζεται χρησιμοποιώντας τη συνάρτηση upper_bound() και στη συνέχεια εμφανίζει το αποτέλεσμα σύγκρισης:

συμπέρασμα

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