Шта је лов_Боунд() метода у Ц++-у

Sta Je Lov Bound Metoda U C U



Програмски језик Ц++ нуди широк спектар функција и метода које се у великој мери користе. Метода ловер_боунд() је једна таква функција која се користи за проналажење првог појављивања дате вредности у сортираном контејнеру. Овај чланак покрива синтаксу, параметре, повратне вредности и пример кода за метод лов_боунд() у Ц++.

Шта је метода лов_боунд()?

Метода ловер_боунд() у Ц++ проналази прво појављивање дате вредности у сортираном контејнеру. То је део библиотеке <алгоритам> у Ц++ и користи се за обављање бинарних претрага низова, вектора и других сортираних контејнера. Метода ловер_боунд() враћа итератор који показује на први елемент у наведеном опсегу контејнера, који није мањи од наведене вредности.

Синтакса







Метода ловер_боунд() у Ц++-у има две варијације: подразумевану и прилагођену синтаксу.



Подразумевана синтакса

Подразумевана синтакса узима ФорвардИтератор који указује на прве и после последњег елемента у опсегу који се тражи, респективно, и вредност за упоређивање елемената у опсегу.



ФорвардИтератор ловер_боунд ( Прво напредИтератор , ФорвардИтератор ласт , конст Т & вал ) ;

Прилагођена синтакса

Прилагођена синтакса додатно узима кориснички дефинисану бинарну предикатску функцију која прати стриктно слабо поређање како би се елементи наручили.





ФорвардИтератор ловер_боунд ( Прво напредИтератор , ФорвардИтератор ласт , конст Т & вал , Упоредите комп ) ;

Параметерс

Метода ловер_боунд() у Ц++-у узима три параметра.

Први прошле: Прва два параметра, “фирст” и “ласт”, одређују опсег [фирст, ласт) унутар којег метода тражи доњу границу. Опсег је специфициран са два параметра, односно „први“ и „последњи“. Опсег обухвата све елементе између „првог” и „последњег” итератора, али искључује елемент на који указује „последњи” итератор.



вал: Трећи параметар методе ловер_боунд() се назива „вал“. Представља вредност доње границе коју треба пронаћи унутар наведеног опсега. Када се позове метода ловер_боунд(), она тражи први елемент унутар наведеног опсега контејнера који је већи или једнак датој вредности „вал“.

комп: Метода ловер_боунд() такође може прихватити функцију бинарног поређења као свој четврти параметар. Потребна су два аргумента: Тип на који указује ФорвардИтератор , а други је вал . Функција затим враћа Булову вредност на основу поређења између два аргумента. Аргумент цомп не мења ниједан од својих аргумената и може бити само показивач функције или објекат функције.

Повратна вредност

Лов_боунд() враћа итератор који показује према првом елементу који је већи или једнак вал . Ако су сви елементи у наведеном опсегу контејнера мањи од дате вредности вал , метода ловер_боунд() враћа итератор који показује на последњи елемент у опсегу и ако су сви елементи већи од вал , даје итератор који указује на први елемент у опсегу.

Пример кода

Овај Ц++ код демонстрира употребу функције стд::ловер_боунд() за проналажење првог елемента у сортираном вектору који није мањи од дате вредности.

#инцлуде <битс/стдц++.х>

инт главни ( )

{

// Улазни вектор

стд :: вектор < дупло > вредности { 10 , петнаест , двадесет , 25 , 30 } ;

// Принт вецтор

стд :: цоут << „Вектор садржи:“ ;

за ( непотписан инт и = 0 ; и < вредности. величина ( ) ; и ++ )

стд :: цоут << ' ' << вредности [ и ] ;

стд :: цоут << ' ' ;

стд :: вектор < дупло >:: итератор ит1 , ит2 , ит3 ;

// стд :: лов_боунд

ит1 = стд :: Доња граница ( вредности. започети ( ) , вредности. крај ( ) , 13 ) ;

ит2 = стд :: Доња граница ( вредности. започети ( ) , вредности. крај ( ) , 23 ) ;

ит3 = стд :: Доња граница ( вредности. започети ( ) , вредности. крај ( ) , 33 ) ;

стд :: цоут

<< ' доња_граница за елемент 13 на позицији: '

<< ( ит1 - вредности. започети ( ) ) ;

стд :: цоут

<< ' доња_граница за елемент 23 на позицији: '

<< ( ит2 - вредности. започети ( ) ) ;

стд :: цоут

<< ' доња_граница за елемент 33 на позицији: '

<< ( ит3 - вредности. започети ( ) ) ;

повратак 0 ;

}

Код почиње тако што дефинише стд::вектор типа вредности са двоструким именом и иницијализује га неким вредностима. Затим штампа елементе вектора користећи фор петљу.

Затим, код декларише три променљиве стд::вецтор<доубле>::итератор под називом ит1, ит2 и ит3. Ове променљиве ће се користити за складиштење резултата позива стд::ловер_боунд() на вектор вредности са различитим аргументима.

Функција стд::ловер_боунд() се позива са три различите вредности: 13, 23 и 33. На сваком позиву, лов_боунд() даје итератор који показује ка првом елементу вектора који је већи или једнак наведена вредност.

Код затим штампа позиције ових елемената у вектору одузимањем итератора вредности.бегин() од итератора који враћа стд::ловер_боунд(), који даје индекс елемента у вектору.

Излаз

Закључак

Метода ловер_боунд() у Ц++ проналази прво појављивање дате вредности у сортираном контејнеру. То је део библиотеке <алгоритам> у Ц++ и може се користити за обављање бинарних претрага низова, вектора и других сортираних контејнера. Метод даје итератор који показује ка првом елементу у опсегу који није мањи од дате вредности. Прочитајте више о методи ловер_боунд() у овом чланку.