Шта је метода лов_боунд()?
Метода ловер_боунд() у Ц++ проналази прво појављивање дате вредности у сортираном контејнеру. То је део библиотеке <алгоритам> у Ц++ и користи се за обављање бинарних претрага низова, вектора и других сортираних контејнера. Метода ловер_боунд() враћа итератор који показује на први елемент у наведеном опсегу контејнера, који није мањи од наведене вредности.
Синтакса
Метода ловер_боунд() у Ц++-у има две варијације: подразумевану и прилагођену синтаксу.
Подразумевана синтакса
Подразумевана синтакса узима ФорвардИтератор који указује на прве и после последњег елемента у опсегу који се тражи, респективно, и вредност за упоређивање елемената у опсегу.
ФорвардИтератор ловер_боунд ( Прво напредИтератор , ФорвардИтератор ласт , конст Т & вал ) ;
Прилагођена синтакса
Прилагођена синтакса додатно узима кориснички дефинисану бинарну предикатску функцију која прати стриктно слабо поређање како би се елементи наручили.
ФорвардИтератор ловер_боунд ( Прво напредИтератор , ФорвардИтератор ласт , конст Т & вал , Упоредите комп ) ;
Параметерс
Метода ловер_боунд() у Ц++-у узима три параметра.
Први прошле: Прва два параметра, “фирст” и “ласт”, одређују опсег [фирст, ласт) унутар којег метода тражи доњу границу. Опсег је специфициран са два параметра, односно „први“ и „последњи“. Опсег обухвата све елементе између „првог” и „последњег” итератора, али искључује елемент на који указује „последњи” итератор.
вал: Трећи параметар методе ловер_боунд() се назива „вал“. Представља вредност доње границе коју треба пронаћи унутар наведеног опсега. Када се позове метода ловер_боунд(), она тражи први елемент унутар наведеног опсега контејнера који је већи или једнак датој вредности „вал“.
комп: Метода ловер_боунд() такође може прихватити функцију бинарног поређења као свој четврти параметар. Потребна су два аргумента: Тип на који указује ФорвардИтератор , а други је вал . Функција затим враћа Булову вредност на основу поређења између два аргумента. Аргумент цомп не мења ниједан од својих аргумената и може бити само показивач функције или објекат функције.
Повратна вредност
Лов_боунд() враћа итератор који показује према првом елементу који је већи или једнак вал . Ако су сви елементи у наведеном опсегу контејнера мањи од дате вредности вал , метода ловер_боунд() враћа итератор који показује на последњи елемент у опсегу и ако су сви елементи већи од вал , даје итератор који указује на први елемент у опсегу.
Пример кода
Овај Ц++ код демонстрира употребу функције стд::ловер_боунд() за проналажење првог елемента у сортираном вектору који није мањи од дате вредности.
#инцлуде <битс/стдц++.х>инт главни ( )
{
// Улазни вектор
стд :: вектор < дупло > вредности { 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. На сваком позиву, лов_боунд() даје итератор који показује ка првом елементу вектора који је већи или једнак наведена вредност.
Код затим штампа позиције ових елемената у вектору одузимањем итератора вредности.бегин() од итератора који враћа стд::ловер_боунд(), који даје индекс елемента у вектору.
Излаз
Закључак
Метода ловер_боунд() у Ц++ проналази прво појављивање дате вредности у сортираном контејнеру. То је део библиотеке <алгоритам> у Ц++ и може се користити за обављање бинарних претрага низова, вектора и других сортираних контејнера. Метод даје итератор који показује ка првом елементу у опсегу који није мањи од дате вредности. Прочитајте више о методи ловер_боунд() у овом чланку.