Apakah Kaedah lower_Bound() dalam C++

Apakah Kaedah Lower Bound Dalam C



Bahasa pengaturcaraan C++ menawarkan pelbagai fungsi dan kaedah yang digunakan secara meluas. Kaedah lower_bound() ialah salah satu fungsi sedemikian yang digunakan untuk mencari kejadian pertama nilai yang diberikan dalam bekas yang diisih. Artikel ini merangkumi sintaks, parameter, nilai pulangan dan kod contoh untuk kaedah lower_bound() dalam C++.

Apakah Kaedah lower_bound()?

Kaedah lower_bound() dalam C++ mencari kejadian pertama nilai yang diberikan dalam bekas yang diisih. Ia adalah sebahagian daripada pustaka dalam C++ dan digunakan untuk melakukan carian binari pada tatasusunan, vektor dan bekas yang diisih lain. Kaedah lower_bound() mengembalikan iterator yang menunjuk kepada elemen pertama dalam julat tertentu bagi bekas, yang tidak kurang daripada nilai yang disediakan.

Sintaks







Kaedah lower_bound() dalam C++ mempunyai dua variasi: lalai dan sintaks tersuai.



Sintaks Lalai

Sintaks lalai mengambil ForwardIterator yang menunjuk kepada elemen pertama dan melepasi elemen terakhir dalam julat untuk dicari, masing-masing, dan nilai untuk membandingkan unsur dalam julat.



ForwardIterator lower_bound ( ForwardIterator dahulu , ForwardIterator terakhir , const T & val ) ;

Sintaks Tersuai

Sintaks tersuai juga mengambil fungsi predikat binari yang ditentukan pengguna yang mengikut susunan lemah yang ketat untuk memesan unsur.





ForwardIterator lower_bound ( ForwardIterator dahulu , ForwardIterator terakhir , const T & val , Bandingkan kompaun ) ;

Parameter

Kaedah lower_bound() dalam C++ mengambil tiga parameter.

Pertama terakhir: Dua parameter pertama, 'pertama' dan 'terakhir', menentukan julat [pertama, terakhir) di mana kaedah mencari sempadan bawah. Julat ditentukan oleh dua parameter, iaitu 'pertama' dan 'terakhir'. Julat termasuk semua elemen antara lelaran 'pertama' dan 'terakhir' tetapi tidak termasuk elemen yang ditunjuk oleh lelaran 'terakhir'.



val: Parameter ketiga kaedah lower_bound() dirujuk sebagai 'val'. Ia mewakili nilai sempadan bawah yang perlu ditemui dalam julat yang ditentukan. Apabila kaedah lower_bound() dipanggil, ia mencari elemen pertama dalam julat tertentu bagi bekas yang lebih besar daripada atau sama dengan nilai 'val' yang diberikan.

comp: Kaedah lower_bound() juga boleh menerima fungsi perbandingan binari sebagai parameter keempatnya. Ia memerlukan dua hujah: Jenis yang ditunjukkan oleh ForwardIterator , dan yang kedua ialah val . Fungsi itu kemudian mengembalikan nilai Boolean berdasarkan perbandingan antara kedua-dua hujah. Argumen comp tidak mengubah sebarang argumennya dan ia hanya boleh menjadi penunjuk fungsi atau objek fungsi.

Nilai Pulangan

Lower_bound() mengembalikan iterator yang menunjuk ke arah elemen pertama yang lebih besar daripada atau sama dengan val . Jika semua elemen dalam julat tertentu bagi bekas adalah lebih kecil daripada nilai yang diberikan val , kaedah lower_bound() mengembalikan iterator yang menunjuk ke elemen terakhir dalam julat, dan jika semua elemen lebih besar daripada val , ia memberikan iterator yang menunjuk kepada elemen pertama dalam julat.

Contoh Kod

Kod C++ ini menunjukkan penggunaan fungsi std::lower_bound() untuk mencari elemen pertama dalam vektor yang diisih yang tidak kurang daripada nilai yang diberikan.

#include

int utama ( )

{

// Vektor input

std :: vektor < berganda > nilai { 10 , lima belas , dua puluh , 25 , 30 } ;

// Cetak vektor

std :: cout << 'Vektor mengandungi:' ;

untuk ( tidak ditandatangani int i = 0 ; i < nilai. saiz ( ) ; i ++ )

std :: cout << ' ' << nilai [ i ] ;

std :: cout << ' \n ' ;

std :: vektor < berganda >:: iterator ia1 , ia2 , ia3 ;

// std :: lower_bound

ia1 = std :: lower_bound ( nilai. bermula ( ) , nilai. tamat ( ) , 13 ) ;

ia2 = std :: lower_bound ( nilai. bermula ( ) , nilai. tamat ( ) , 23 ) ;

ia3 = std :: lower_bound ( nilai. bermula ( ) , nilai. tamat ( ) , 33 ) ;

std :: cout

<< ' \n lower_bound untuk elemen 13 pada kedudukan: '

<< ( ia1 - nilai. bermula ( ) ) ;

std :: cout

<< ' \n lower_bound untuk elemen 23 pada kedudukan: '

<< ( ia2 - nilai. bermula ( ) ) ;

std :: cout

<< ' \n lower_bound untuk elemen 33 pada kedudukan: '

<< ( ia3 - nilai. bermula ( ) ) ;

kembali 0 ;

}

Kod bermula dengan mentakrifkan std::vector jenis nilai dua nama dan memulakannya dengan beberapa nilai. Ia kemudian mencetak elemen vektor menggunakan gelung for.

Seterusnya, kod tersebut mengisytiharkan tiga pembolehubah std::vector::iterator bernama it1, it2 dan it3. Pembolehubah ini akan digunakan untuk menyimpan hasil panggilan std::lower_bound() pada vektor nilai dengan argumen yang berbeza.

Fungsi std::lower_bound() dipanggil dengan tiga nilai berbeza: 13, 23, dan 33. Pada setiap panggilan, lower_bound() memberikan iterator yang menghala ke arah elemen pertama dalam vektor yang lebih besar daripada atau sama dengan nilai yang ditentukan.

Kod itu kemudian mencetak kedudukan unsur-unsur ini dalam vektor dengan menolak lelaran values.begin() daripada iterator yang dikembalikan oleh std::lower_bound(), yang memberikan indeks elemen dalam vektor.

Pengeluaran

Kesimpulan

Kaedah lower_bound() dalam C++ mencari kejadian pertama nilai yang diberikan dalam bekas yang diisih. Ia adalah sebahagian daripada pustaka dalam C++ dan boleh digunakan untuk melakukan carian binari pada tatasusunan, vektor dan bekas yang diisih lain. Kaedah ini memberikan iterator yang menunjuk ke arah elemen pertama dalam julat yang tidak kurang daripada nilai yang diberikan. Baca lebih lanjut mengenai kaedah lower_bound() dalam artikel ini.