Care este metoda low_Bound() în C++

Care Este Metoda Low Bound In C



Limbajul de programare C++ oferă o gamă largă de funcții și metode care sunt utilizate pe scară largă. Metoda low_bound() este o astfel de funcție care este utilizată pentru a găsi prima apariție a unei valori date într-un container sortat. Acest articol acoperă sintaxa, parametrii, valorile returnate și un exemplu de cod pentru metoda low_bound() în C++.

Care este metoda low_bound()?

Metoda lower_bound() din C++ găsește prima apariție a unei valori date într-un container sortat. Este o parte a bibliotecii din C++ și este folosită pentru a efectua căutări binare pe matrice, vectori și alte containere sortate. Metoda low_bound() returnează un iterator care indică primul element dintr-un interval specificat al unui container, care nu este mai mic decât valoarea furnizată.

Sintaxă







Metoda lower_bound() din C++ are două variante: o sintaxă implicită și o sintaxă personalizată.



Sintaxă implicită

Sintaxa implicită preia un ForwardIterator care indică primul și, respectiv, ultimele elemente din intervalul care trebuie căutat, și o valoare pentru a compara elementele din interval.



ForwardIterator limita_inferioară ( ForwardIterator mai întâi , ForwardIterator ultimul , const T & val ) ;

Sintaxă personalizată

Sintaxa personalizată include în plus o funcție de predicat binar definită de utilizator care urmează o ordonare strictă slabă pentru a ordona elementele.





ForwardIterator limita_inferioară ( ForwardIterator mai întâi , ForwardIterator ultimul , const T & val , Compara comp ) ;

Parametrii

Metoda low_bound() din C++ ia trei parametri.

Primul Ultimul: Primii doi parametri, „primul” și „ultimul”, determină intervalul [primul, ultimul) în care metoda caută limita inferioară. Domeniul este specificat de doi parametri, și anume „primul” și „ultimul”. Intervalul include toate elementele dintre „primul” și „ultimul” iterator, dar exclude elementul indicat de „ultimul” iterator.



val: Al treilea parametru al metodei low_bound() este denumit „val”. Reprezintă valoarea limitei inferioare care trebuie găsită în intervalul specificat. Când este apelată metoda low_bound(), aceasta caută primul element din intervalul specificat al unui container care este mai mare sau egal cu valoarea dată „val”.

comp: Metoda low_bound() poate accepta, de asemenea, o funcție de comparație binară ca al patrulea parametru. Este nevoie de două argumente: Tipul indicat de ForwardIterator , iar al doilea este val . Funcția returnează apoi o valoare booleană bazată pe o comparație între cele două argumente. Argumentul comp nu schimbă niciunul dintre argumentele sale și poate fi doar un pointer funcție sau un obiect funcție.

Valoare returnată

Lower_bound() returnează un iterator care indică către primul element care este mai mare sau egal cu val . Dacă toate elementele din intervalul specificat al unui container sunt mai mici decât valoarea dată val , metoda low_bound() returnează un iterator care indică ultimul element din interval și dacă toate elementele sunt mai mari decât val , oferă un iterator care indică primul element din interval.

Exemplu de cod

Acest cod C++ demonstrează utilizarea funcției std::lower_bound() pentru a găsi primul element dintr-un vector sortat care nu este mai mic decât o valoare dată.

#include

int principal ( )

{

// Vector de intrare

std :: vector < dubla > valorile { 10 , cincisprezece , douăzeci , 25 , 30 } ;

// Imprimare vector

std :: cout << 'Vectorul conține:' ;

pentru ( nesemnat int i = 0 ; i < valorile. mărimea ( ) ; i ++ )

std :: cout << ' ' << valorile [ i ] ;

std :: cout << ' \n ' ;

std :: vector < dubla >:: iterator it1 , it2 , it3 ;

// std :: limita_inferioară

it1 = std :: limita inferioară ( valorile. ÎNCEPE ( ) , valorile. Sfârşit ( ) , 13 ) ;

it2 = std :: limita inferioară ( valorile. ÎNCEPE ( ) , valorile. Sfârşit ( ) , 23 ) ;

it3 = std :: limita inferioară ( valorile. ÎNCEPE ( ) , valorile. Sfârşit ( ) , 33 ) ;

std :: cout

<< ' \n limita_inferioară pentru elementul 13 la poziția: '

<< ( it1 - valorile. ÎNCEPE ( ) ) ;

std :: cout

<< ' \n limita_inferioară pentru elementul 23 la poziția: '

<< ( it2 - valorile. ÎNCEPE ( ) ) ;

std :: cout

<< ' \n limita_inferioară pentru elementul 33 la poziția: '

<< ( it3 - valorile. ÎNCEPE ( ) ) ;

întoarcere 0 ;

}

Codul începe prin definirea unui std::vector de tip valori cu nume dublu și inițializarea acestuia cu unele valori. Apoi tipărește elementele vectorului folosind o buclă for.

Apoi, codul declară trei variabile std::vector::iterator numite it1, it2 și it3. Aceste variabile vor fi folosite pentru a stoca rezultatele apelării std::lower_bound() pe vectorul de valori cu argumente diferite.

Funcția std::lower_bound() este apelată cu trei valori diferite: 13, 23 și 33. La fiecare apel, lower_bound() oferă un iterator care indică către primul element din vector care este mai mare sau egal cu valoare specificată.

Codul imprimă apoi pozițiile acestor elemente în vector scăzând iteratorul values.begin() din iteratorul returnat de std::lower_bound(), care oferă indexul elementului din vector.

Ieșire

Concluzie

Metoda lower_bound() din C++ găsește prima apariție a unei valori date într-un container sortat. Este o parte a bibliotecii în C++ și poate fi folosită pentru a efectua căutări binare pe matrice, vectori și alte containere sortate. Metoda oferă un iterator care indică către primul element dintr-un interval care nu este mai mic decât valoarea dată. Citiți mai multe despre metoda low_bound() în acest articol.