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
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ă.
#includeint 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
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