Kaj je metoda lower_Bound() v C++

Kaj Je Metoda Lower Bound V C



Programski jezik C++ ponuja široko paleto funkcij in metod, ki se pogosto uporabljajo. Metoda lower_bound() je ena taka funkcija, ki se uporablja za iskanje prve pojavitve dane vrednosti v razvrščenem vsebniku. Ta članek zajema sintakso, parametre, vrnjene vrednosti in primer kode za metodo lower_bound() v C++.

Kaj je metoda lower_bound()?

Metoda lower_bound() v C++ najde prvo pojavitev dane vrednosti v razvrščenem vsebniku. Je del knjižnice v C++ in se uporablja za izvajanje binarnih iskanj v nizih, vektorjih in drugih razvrščenih vsebnikih. Metoda lower_bound() vrne iterator, ki kaže na prvi element v določenem obsegu vsebnika, ki ni manjši od navedene vrednosti.

Sintaksa







Metoda lower_bound() v C++ ima dve različici: privzeto in sintakso po meri.



Privzeta sintaksa

Privzeta sintaksa vključuje ForwardIterator, ki kaže na prvi in ​​zadnji element v obsegu, ki ga je treba preiskati, in vrednost za primerjavo elementov v obsegu.



Spodnja_meja ForwardIterator ( Najprej ForwardIterator , ForwardIterator zadnji , konst T & val ) ;

Sintaksa po meri

Sintaksa po meri poleg tega vključuje uporabniško definirano binarno predikatno funkcijo, ki sledi strogemu šibkemu vrstnemu redu za razvrščanje elementov.





Spodnja_meja ForwardIterator ( Najprej ForwardIterator , ForwardIterator zadnji , konst T & val , Primerjaj komp ) ;

Parametri

Metoda lower_bound() v C++ ima tri parametre.

Prvi zadnji: Prva dva parametra, »prvi« in »zadnji«, določata obseg [prvi, zadnji), znotraj katerega metoda išče spodnjo mejo. Obseg je določen z dvema parametroma, in sicer »prvi« in »zadnji«. Obseg vključuje vse elemente med 'prvim' in 'zadnjim' iteratorjem, vendar izključuje element, na katerega kaže 'zadnji' iterator.



val: Tretji parameter metode lower_bound() se imenuje 'val'. Predstavlja vrednost spodnje meje, ki jo je treba najti v določenem obsegu. Ko se pokliče metoda lower_bound(), išče prvi element znotraj podanega obsega vsebnika, ki je večji ali enak dani vrednosti 'val'.

comp: Metoda lower_bound() lahko sprejme tudi binarno primerjalno funkcijo kot svoj četrti parameter. Potrebuje dva argumenta: tip, na katerega kaže ForwardIterator , in drugi je val . Funkcija nato vrne logično vrednost na podlagi primerjave med obema argumentoma. Argument comp ne spremeni nobenega od svojih argumentov in je lahko le funkcijski kazalec ali funkcijski objekt.

Povratna vrednost

Lower_bound() vrne iterator, ki kaže na prvi element, ki je večji ali enak val . Če so vsi elementi v podanem obsegu vsebnika manjši od dane vrednosti val , metoda lower_bound() vrne iterator, ki kaže na zadnji element v obsegu, in če so vsi elementi večji od val , daje iterator, ki kaže na prvi element v območju.

Primer kode

Ta koda C++ prikazuje uporabo funkcije std::lower_bound() za iskanje prvega elementa v razvrščenem vektorju, ki ni manjši od dane vrednosti.

#include

int glavni ( )

{

// Vhodni vektor

std :: vektor < dvojno > vrednote { 10 , petnajst , dvajset , 25 , 30 } ;

// Natisni vektor

std :: cout << 'Vektor vsebuje:' ;

za ( nepodpisan int jaz = 0 ; jaz < vrednote. velikost ( ) ; jaz ++ )

std :: cout << ' ' << vrednote [ jaz ] ;

std :: cout << ' \n ' ;

std :: vektor < dvojno >:: iterator it1 , it2 , it3 ;

// std :: spodnja_meja

it1 = std :: spodnja_meja ( vrednote. začeti ( ) , vrednote. konec ( ) , 13 ) ;

it2 = std :: spodnja_meja ( vrednote. začeti ( ) , vrednote. konec ( ) , 23 ) ;

it3 = std :: spodnja_meja ( vrednote. začeti ( ) , vrednote. konec ( ) , 33 ) ;

std :: cout

<< ' \n spodnja_meja za element 13 na položaju: '

<< ( it1 - vrednote. začeti ( ) ) ;

std :: cout

<< ' \n spodnja_meja za element 23 na položaju: '

<< ( it2 - vrednote. začeti ( ) ) ;

std :: cout

<< ' \n spodnja_meja za element 33 na položaju: '

<< ( it3 - vrednote. začeti ( ) ) ;

vrnitev 0 ;

}

Koda se začne z definiranjem std::vectorja tipa dvojno imenovanih vrednosti in njegovo inicializacijo z nekaterimi vrednostmi. Nato natisne elemente vektorja z uporabo zanke for.

Nato koda deklarira tri spremenljivke std::vector::iterator z imenom it1, it2 in it3. Te spremenljivke bodo uporabljene za shranjevanje rezultatov klica std::lower_bound() na vektorju vrednosti z različnimi argumenti.

Funkcija std::lower_bound() se kliče s tremi različnimi vrednostmi: 13, 23 in 33. Pri vsakem klicu bottom_bound() poda iterator, ki kaže na prvi element v vektorju, ki je večji ali enak določeno vrednost.

Koda nato natisne položaje teh elementov v vektorju tako, da odšteje iterator values.begin() od iteratorja, ki ga vrne std::lower_bound(), kar poda indeks elementa v vektorju.

Izhod

Zaključek

Metoda lower_bound() v C++ najde prvo pojavitev dane vrednosti v razvrščenem vsebniku. Je del knjižnice v C++ in se lahko uporablja za izvajanje binarnih iskanj v nizih, vektorjih in drugih razvrščenih vsebnikih. Metoda daje iterator, ki kaže na prvi element v obsegu, ki ni manjši od dane vrednosti. Preberite več o metodi lower_bound() v tem članku.