Apa metode lower_bound()?
Metode lower_bound() dalam C++ menemukan kejadian pertama dari nilai yang diberikan dalam wadah yang diurutkan. Ini adalah bagian dari pustaka
Sintaksis
Metode lower_bound() dalam C++ memiliki dua variasi: sintaks default dan kustom.
Sintaks Default
Sintaks default menggunakan ForwardIterator yang menunjuk ke elemen pertama dan terakhir dalam rentang yang akan dicari, masing-masing, dan nilai untuk membandingkan elemen dalam rentang.
ForwardIterator lower_bound ( ForwardIterator terlebih dahulu , ForwardIterator terakhir , const T & val ) ;
Sintaks Kustom
Sintaks khusus juga menggunakan fungsi predikat biner yang ditentukan pengguna yang mengikuti urutan lemah yang ketat untuk mengurutkan elemen.
ForwardIterator lower_bound ( ForwardIterator terlebih dahulu , ForwardIterator terakhir , const T & val , Bandingkan komp ) ;
Parameter
Metode lower_bound() di C++ membutuhkan tiga parameter.
Pertama, terakhir: Dua parameter pertama, 'pertama' dan 'terakhir', menentukan rentang [pertama, terakhir) di mana metode mencari batas bawah. Rentang ditentukan oleh dua parameter, yaitu 'pertama' dan 'terakhir'. Rentang mencakup semua elemen antara iterator 'pertama' dan 'terakhir', tetapi mengecualikan elemen yang ditunjuk oleh iterator 'terakhir'.
val: Parameter ketiga dari metode lower_bound() disebut sebagai “val”. Ini mewakili nilai batas bawah yang perlu ditemukan dalam rentang yang ditentukan. Ketika metode lower_bound() dipanggil, ia mencari elemen pertama dalam rentang yang ditentukan dari wadah yang lebih besar dari atau sama dengan nilai 'val' yang diberikan.
komp: Metode lower_bound() juga dapat menerima fungsi perbandingan biner sebagai parameter keempatnya. Dibutuhkan dua argumen: Jenis yang ditunjukkan oleh the ForwardIterator , dan yang kedua adalah val . Fungsi kemudian mengembalikan nilai Boolean berdasarkan perbandingan antara dua argumen. Argumen comp tidak mengubah argumennya dan hanya bisa berupa penunjuk fungsi atau objek fungsi.
Nilai Pengembalian
Lower_bound() mengembalikan sebuah iterator yang mengarah ke elemen pertama yang lebih besar dari atau sama dengan val . Jika semua elemen dalam rentang tertentu wadah lebih kecil dari nilai yang diberikan val , metode lower_bound() mengembalikan iterator yang menunjuk ke elemen terakhir dalam rentang, dan jika semua elemen lebih besar dari val , ini memberikan iterator yang menunjuk ke elemen pertama dalam rentang.
Kode Contoh
Kode C++ ini mendemonstrasikan penggunaan fungsi std::lower_bound() untuk menemukan elemen pertama dalam vektor terurut yang tidak kurang dari nilai yang diberikan.
#sertakanint utama ( )
{
// masukan vektor
std :: vektor < dobel > nilai-nilai { 10 , limabelas , dua puluh , 25 , 30 } ;
// Cetak vektor
std :: cout << 'Vektor berisi:' ;
untuk ( tidak ditandatangani int Saya = 0 ; Saya < nilai-nilai. ukuran ( ) ; Saya ++ )
std :: cout << ' ' << nilai-nilai [ Saya ] ;
std :: cout << ' \N ' ;
std :: vektor < dobel >:: iterator itu1 , itu2 , itu3 ;
// std :: batas_bawah
itu1 = std :: batas bawah ( nilai-nilai. mulai ( ) , nilai-nilai. akhir ( ) , 13 ) ;
itu2 = std :: batas bawah ( nilai-nilai. mulai ( ) , nilai-nilai. akhir ( ) , 23 ) ;
itu3 = std :: batas bawah ( nilai-nilai. mulai ( ) , nilai-nilai. akhir ( ) , 33 ) ;
std :: cout
<< ' \N batas_bawah untuk elemen 13 pada posisi: '
<< ( itu1 - nilai-nilai. mulai ( ) ) ;
std :: cout
<< ' \N batas_bawah untuk elemen 23 pada posisi: '
<< ( itu2 - nilai-nilai. mulai ( ) ) ;
std :: cout
<< ' \N batas_bawah untuk elemen 33 pada posisi: '
<< ( itu3 - nilai-nilai. mulai ( ) ) ;
kembali 0 ;
}
Kode dimulai dengan mendefinisikan std::vector bertipe double-named values dan menginisialisasinya dengan beberapa nilai. Ini kemudian mencetak elemen vektor menggunakan for loop.
Selanjutnya, kode mendeklarasikan tiga variabel std::vector
Fungsi std::lower_bound() dipanggil dengan tiga nilai berbeda: 13, 23, dan 33. Pada setiap panggilan, lower_bound() memberikan iterator yang menunjuk ke elemen pertama dalam vektor yang lebih besar atau sama dengan nilai yang ditentukan.
Kode kemudian mencetak posisi elemen-elemen ini dalam vektor dengan mengurangkan iterator values.begin() dari iterator yang dikembalikan oleh std::lower_bound(), yang memberikan indeks elemen dalam vektor.
Keluaran
Kesimpulan
Metode lower_bound() dalam C++ menemukan kejadian pertama dari nilai yang diberikan dalam wadah yang diurutkan. Ini adalah bagian dari pustaka