Apa metode lower_Bound() di C++

Apa Metode Lower Bound Di C



Bahasa pemrograman C++ menawarkan berbagai fungsi dan metode yang banyak digunakan. Metode lower_bound() adalah salah satu fungsi yang digunakan untuk menemukan kejadian pertama dari nilai yang diberikan dalam wadah yang diurutkan. Artikel ini mencakup sintaks, parameter, nilai pengembalian, dan kode contoh untuk metode lower_bound() di C++.

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 di C++ dan digunakan untuk melakukan pencarian biner pada array, vektor, dan wadah terurut lainnya. Metode lower_bound() mengembalikan iterator yang menunjuk ke elemen pertama dalam rentang wadah tertentu, yang tidak kurang dari nilai yang diberikan.

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.

#sertakan

int 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::iterator bernama it1, it2, dan it3. Variabel ini akan digunakan untuk menyimpan hasil pemanggilan std::lower_bound() pada vektor nilai dengan argumen yang berbeda.

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 di C++ dan dapat digunakan untuk melakukan pencarian biner pada array, vektor, dan wadah terurut lainnya. Metode memberikan iterator yang menunjuk ke elemen pertama dalam rentang yang tidak kurang dari nilai yang diberikan. Baca lebih lanjut tentang metode lower_bound() di artikel ini.