Cum se utilizează funcția Upper_bound() în C++

Cum Se Utilizeaza Functia Upper Bound In C



O varietate de programe, inclusiv jocuri, grafică, servere web și multe altele, pot fi realizate folosind limbajul de programare C++. Cu toate acestea, uneori este posibil să fie nevoie să efectuăm anumite operații asupra datelor din programele noastre, cum ar fi căutarea, sortarea sau găsirea valorii maxime sau minime dintr-o serie de elemente. Una dintre funcțiile care poate fi folosită pentru a găsi limita superioară a unei valori într-un interval sortat de elemente este upper_bound().

Ce este funcția upper_bound() în C++

Funcția upper_bound() din C++ este o funcție care ia un interval sortat de elemente și o valoare ca argumente și returnează un iterator care indică primul element din interval care este mai mare decât valoarea.







Are două tipuri diferite de argumente:



num upper_bound ( pe unu. primul , pe unu. ultimul , valoare )

Iteratorii care specifică gama de elemente care trebuie examinate sunt primul și ultimul. Intervalul utilizat conține toate elementele de la primul element până la sfârșit, dar nu include elementul indicat de ultimul. Valoarea este valoarea cu care se compară elementele.



num upper_bound ( pe unu. primul , pe unu. ultimul ,  valoare, compara comp )

În acest caz, funcția binară comp produce o valoare care poate fi convertită într-un bool și acceptă doi parametri de același tip ca elementele intervalului. Dacă o anumită condiție impune ca primul argument să nu fie mai mare decât al doilea, funcția trebuie să returneze rezultatul adevărat, iar dacă nu, ar trebui să returneze false.





Cum se utilizează funcția upper_bound() în C++

Funcția upper_bound() poate fi folosită pentru a găsi limita superioară a unei valori într-un interval sortat de elemente în diferite situații. De exemplu, îl putem folosi pentru a găsi poziția unui element într-o matrice sau vector sortat sau pentru a găsi următorul element mai mare dintr-o mulțime sau hartă. Iată câteva exemple despre cum să utilizați funcția upper_bound() în C++:

Exemplul 1: Utilizarea funcției upper_bound() pentru a găsi poziția unui element într-o matrice sortată

Iată un exemplu care utilizează funcția upper_bound() pentru a găsi poziția unui element într-o matrice sortată de numere întregi și pentru a o afișa pe ecran:



#include

#include

folosind spatiu de nume std ;

int principal ( )

{

int matrice [ ] = { cincisprezece , 35 , Patru cinci , 55 , 65 } ;

int A = dimensiunea ( matrice ) / dimensiunea ( matrice [ 0 ] ) ;

cout << 'Matricea conține: ' ;

pentru ( int i = 0 ; i < A ; i ++ )

cout << matrice [ i ] << ' ' ;

cout << ' \n ' ;

int b = Patru cinci ; // declară și inițializează o valoare

int * p = limită superioară ( matrice, matrice + a, b ) ;

cout << „Liga superioară a” << b << ' este pe pozitia: ' << ( p - matrice ) << ' \n ' ; // afișează poziția folosind aritmetica pointerului

întoarcere 0 ;

}

Mai întâi programul definește fișierele de antet necesare și matricea care conține numere și apoi folosește funcția sizeof() pentru a obține dimensiunea matricei. În continuare, o buclă for este folosită pentru a afișa elementele matricei și apoi este declarat un număr întreg a cărui poziție în matrice este determinată cu ajutorul pointerului și este afișat în ieșire:

Exemplul 2: Utilizarea funcției upper_bound() pentru a găsi următorul element mai mare dintr-un set

Iată un exemplu de cod care utilizează funcția upper_bound() pentru a găsi următorul element mai mare decât o valoare dată într-un set de numere întregi și pentru a-l afișa pe ecran:

#include

#include

#include

folosind spatiu de nume std ;

int principal ( )

{

a stabilit < int > pe unu = { cincisprezece , 25 , 35 , Patru cinci , 55 } ; // declară și inițializează un set de numere întregi

cout << „Numerele date:” ;

pentru ( auto A : pe unu ) // afișează elementele setate folosind bucla for bazată pe interval

cout << A << ' ' ;

cout << ' \n ' ;

int A = Patru cinci ; // declară și inițializează o valoare

auto aceasta = limită superioară ( pe unu. ÎNCEPE ( ) , pe unu. Sfârşit ( ) , A ) ; // găsiți limita superioară a lui x în set folosind upper_bound()

dacă ( aceasta ! = pe unu. Sfârşit ( ) ) // verifică dacă iteratorul este valid

cout << „Următorul număr mai mare decât” << A << ' este ' << * aceasta << ' \n ' ; // afișează elementul folosind operatorul de dereference

altfel

cout << „Nu există un număr mai mare decât” << A << ' \n ' ; // afișează un mesaj dacă nu este găsit un astfel de element

întoarcere 0 ;

}

Mai întâi codul definește fișierele de antet necesare și apoi este definit un vector de cinci elemente, apoi vectorul este afișat folosind cuvântul cheie auto, deoarece poate seta automat tipul de date al elementelor. Apoi este declarată o variabilă cu valoarea 45 care este apoi comparată cu vectorul definit folosind funcția upper_bound() și apoi afișează rezultatul comparației:

Concluzie

Funcția upper_bound() este o funcție care returnează un iterator care indică primul element dintr-un interval sortat care este mai mare decât o valoare dată. Pentru a localiza primul număr într-un interval care este mai mare sau egal cu un număr specificat, utilizați funcția upper_bound() în C++. Acest lucru poate fi util pentru sarcini precum găsirea următorului cel mai mare număr dintr-o listă sau găsirea primului element dintr-o matrice sortată care este mai mare decât un anumit prag.