Kas ir apakšējā_ribas() metode?
Low_bound() metode programmā C++ atrod dotās vērtības pirmo reizi sakārtotā konteinerā. Tā ir daļa no C++ bibliotēkas
Sintakse
Metodei Lower_bound() programmā C++ ir divi varianti: noklusējuma un pielāgotā sintakse.
Noklusējuma sintakse
Noklusējuma sintakse izmanto ForwardIterator, kas attiecīgi norāda uz pirmo un aiz pēdējiem elementiem diapazonā, kas jāmeklē, un vērtību, lai salīdzinātu diapazona elementus.
ForwardIterator apakšējā robeža ( Vispirms ForwardIterator , ForwardIterator pēdējais , konst T & val ) ;
Pielāgota sintakse
Pielāgotā sintakse papildus izmanto lietotāja definētu bināro predikātu funkciju, kas seko stingrai vājai elementu secībai.
ForwardIterator apakšējā robeža ( Vispirms ForwardIterator , ForwardIterator pēdējais , konst T & val , Salīdziniet komp ) ;
Parametri
Low_bound() metodei C++ ir trīs parametri.
Pirmais Pēdējais: Pirmie divi parametri, “pirmais” un “pēdējais”, nosaka diapazonu [pirmais, pēdējais), kurā metode meklē apakšējo robežu. Diapazonu nosaka divi parametri, proti, “pirmais” un “pēdējais”. Diapazons ietver visus elementus starp “pirmo” un “pēdējo” iteratoru, bet neietver elementu, uz kuru norāda “pēdējais” iterators.
val: Trešais apakšējā_ribas() metodes parametrs tiek saukts par 'val'. Tas apzīmē apakšējās robežas vērtību, kas jāatrod norādītajā diapazonā. Kad tiek izsaukta metode Lower_bound(), tā meklē pirmo elementu norādītajā konteinera diapazonā, kas ir lielāks vai vienāds ar norādīto vērtību “val”.
kompozīcija: Low_bound() metode var arī pieņemt bināro salīdzināšanas funkciju kā savu ceturto parametru. Tam nepieciešami divi argumenti: tips, uz kuru norāda ForwardIterator , un otrais ir val . Pēc tam funkcija atgriež Būla vērtību, pamatojoties uz abu argumentu salīdzinājumu. Arguments comp nemaina nevienu no tā argumentiem, un tas var būt tikai funkcijas rādītājs vai funkcijas objekts.
Atdeves vērtība
Low_bound() atgriež iteratoru, kas norāda uz pirmo elementu, kas ir lielāks par vai vienāds ar val . Ja visi elementi norādītajā konteinera diapazonā ir mazāki par doto vērtību val , metode bottom_bound() atgriež iteratoru, kas norāda uz pēdējo elementu diapazonā, un, ja visi elementi ir lielāki par val , tas dod iteratoru, kas norāda uz pirmo elementu diapazonā.
Koda piemērs
Šis C++ kods parāda funkcijas std::lower_bound() izmantošanu, lai atrastu pirmo elementu sakārtotā vektorā, kas nav mazāks par doto vērtību.
#includestarpt galvenais ( )
{
// Ievades vektors
std :: vektors < dubultā > vērtības { 10 , piecpadsmit , divdesmit , 25 , 30 } ;
// Drukāt vektoru
std :: cout << 'Vektors satur:' ;
priekš ( neparakstīts starpt i = 0 ; i < vērtības. Izmērs ( ) ; i ++ )
std :: cout << ' ' << vērtības [ i ] ;
std :: cout << ' \n ' ;
std :: vektors < dubultā >:: iterators tas1 , tas2 , tas3 ;
// std :: apakšējā robeža
tas1 = std :: apakšējā robeža ( vērtības. sākt ( ) , vērtības. beigas ( ) , 13 ) ;
tas2 = std :: apakšējā robeža ( vērtības. sākt ( ) , vērtības. beigas ( ) , 23 ) ;
tas3 = std :: apakšējā_ robeža ( vērtības. sākt ( ) , vērtības. beigas ( ) , 33 ) ;
std :: cout
<< ' \n apakšējā_ robeža 13. elementam pozīcijā: '
<< ( tas1 - vērtības. sākt ( ) ) ;
std :: cout
<< ' \n apakšējā_ robeža 23. elementam pozīcijā: '
<< ( tas2 - vērtības. sākt ( ) ) ;
std :: cout
<< ' \n apakšējā_ robeža 33. elementam pozīcijā: '
<< ( tas3 - vērtības. sākt ( ) ) ;
atgriezties 0 ;
}
Kods sākas, definējot std::vektoru ar divu nosaukumu vērtībām un inicializējot to ar dažām vērtībām. Pēc tam tas izdrukā vektora elementus, izmantojot for cilpu.
Tālāk kods deklarē trīs std::vector
Funkcija std::lower_bound() tiek izsaukta ar trim dažādām vērtībām: 13, 23 un 33. Katrā izsaukumā Lower_bound() dod iteratoru, kas norāda uz vektora pirmo elementu, kas ir lielāks vai vienāds ar norādītā vērtība.
Pēc tam kods izdrukā šo elementu pozīcijas vektorā, atņemot vērtības.begin() iteratoru no iteratora, ko atgriež std::lower_bound(), kas dod elementa indeksu vektorā.
Izvade
Secinājums
Low_bound() metode programmā C++ atrod dotās vērtības pirmo reizi sakārtotā konteinerā. Tā ir daļa no C++ bibliotēkas