Apakah Kaedah lower_bound()?
Kaedah lower_bound() dalam C++ mencari kejadian pertama nilai yang diberikan dalam bekas yang diisih. Ia adalah sebahagian daripada pustaka
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.
#includeint 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
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