Cara Menggunakan Fungsi Upper_bound() dalam C++

Cara Menggunakan Fungsi Upper Bound Dalam C



Pelbagai program, termasuk permainan, grafik, pelayan web dan banyak lagi, boleh dibuat menggunakan bahasa pengaturcaraan C++. Walau bagaimanapun, kadangkala kami mungkin perlu melakukan beberapa operasi pada data dalam program kami, seperti mencari, mengisih atau mencari nilai maksimum atau minimum antara julat elemen. Salah satu fungsi yang boleh digunakan untuk mencari sempadan atas nilai dalam julat elemen yang diisih ialah upper_bound().

Apakah Fungsi upper_bound() dalam C++

Fungsi upper_bound() dalam C++ ialah fungsi yang mengambil julat elemen yang diisih dan nilai sebagai argumen dan mengembalikan iterator yang menunjuk ke elemen pertama dalam julat yang lebih besar daripada nilai.







Ia mempunyai dua jenis hujah yang berbeza:



num atas_bound ( pada satu. pertama , pada satu. terakhir , nilai )

Iterator yang menentukan julat elemen yang akan diperiksa adalah yang pertama dan terakhir. Selang yang digunakan mengandungi semua elemen dari elemen pertama hingga akhir tetapi tidak termasuk elemen yang ditunjukkan oleh yang terakhir. Nilai ialah nilai untuk membandingkan elemen.



num atas_bound ( pada satu. pertama , pada satu. terakhir ,  nilai, bandingkan kompaun )

Dalam kes ini, comp fungsi binari menghasilkan nilai yang boleh ditukar kepada bool dan menerima dua parameter daripada jenis yang sama seperti item julat. Jika syarat tertentu menentukan bahawa hujah pertama tidak lebih tinggi daripada yang kedua, fungsi mesti mengembalikan hasil benar dan jika tidak, ia harus mengembalikan palsu.





Cara Menggunakan Fungsi upper_bound() dalam C++

Fungsi upper_bound() boleh digunakan untuk mencari sempadan atas nilai dalam julat elemen yang diisih dalam pelbagai situasi. Sebagai contoh, kita boleh menggunakannya untuk mencari kedudukan elemen dalam tatasusunan atau vektor yang diisih, atau untuk mencari elemen yang lebih besar seterusnya dalam set atau peta. Berikut ialah beberapa contoh cara menggunakan fungsi upper_bound() dalam C++:

Contoh 1: Menggunakan Fungsi upper_bound() untuk Mencari Kedudukan Elemen dalam Tatasusunan Isih

Berikut ialah contoh, yang menggunakan fungsi upper_bound() untuk mencari kedudukan elemen dalam tatasusunan integer yang diisih dan memaparkannya pada skrin:



#include

#include

menggunakan ruang nama std ;

int utama ( )

{

int tatasusunan [ ] = { lima belas , 35 , Empat lima , 55 , 65 } ;

int a = saiz ( tatasusunan ) / saiz ( tatasusunan [ 0 ] ) ;

cout << 'Array mengandungi:' ;

untuk ( int i = 0 ; i < a ; i ++ )

cout << tatasusunan [ i ] << ' ' ;

cout << ' \n ' ;

int b = Empat lima ; // mengisytiharkan dan memulakan nilai

int * hlm = batas_atas ( tatasusunan, tatasusunan + a, b ) ;

cout << 'Batas atas' << b << ' berada pada kedudukan: ' << ( hlm - tatasusunan ) << ' \n ' ; // paparkan kedudukan menggunakan aritmetik penunjuk

kembali 0 ;

}

Mula-mula program mentakrifkan fail pengepala yang diperlukan dan tatasusunan yang mengandungi nombor dan kemudian menggunakan fungsi sizeof() untuk mendapatkan saiz tatasusunan. Seterusnya gelung for digunakan untuk memaparkan elemen tatasusunan dan kemudian integer diisytiharkan yang kedudukannya dalam tatasusunan ditentukan menggunakan penunjuk dan ia dipaparkan dalam output:

Contoh 2: Menggunakan Fungsi upper_bound() untuk Mencari Elemen Lebih Besar Seterusnya dalam Set

Berikut ialah contoh kod yang menggunakan fungsi upper_bound() untuk mencari elemen seterusnya yang lebih besar daripada nilai yang diberikan dalam set integer dan memaparkannya pada skrin:

#include

#include

#include

menggunakan ruang nama std ;

int utama ( )

{

ditetapkan < int > pada satu = { lima belas , 25 , 35 , Empat lima , 55 } ; // mengisytiharkan dan memulakan set integer

cout << 'Nombor Diberi:' ;

untuk ( auto a : pada satu ) // paparkan elemen set menggunakan berasaskan julat untuk gelung

cout << a << ' ' ;

cout << ' \n ' ;

int a = Empat lima ; // mengisytiharkan dan memulakan nilai

auto ia = batas_atas ( pada satu. bermula ( ) , pada satu. tamat ( ) , a ) ; // cari sempadan atas x dalam set menggunakan upper_bound()

jika ( ia ! = pada satu. tamat ( ) ) // semak sama ada iterator adalah sah

cout << 'Nombor Seterusnya Lebih Tinggi Daripada' << a << 'adalah' << * ia << ' \n ' ; // paparkan elemen menggunakan pengendali dereference

lain

cout << 'Tiada Bilangan Lebih Tinggi daripada' << a << ' \n ' ; // paparkan mesej jika tiada unsur tersebut ditemui

kembali 0 ;

}

Mula-mula kod mentakrifkan fail pengepala yang diperlukan dan kemudian vektor lima elemen ditakrifkan, seterusnya vektor dipaparkan menggunakan kata kunci auto kerana ia boleh menetapkan jenis data elemen secara automatik. Seterusnya pembolehubah yang mempunyai nilai 45 diisytiharkan yang kemudiannya dibandingkan dengan vektor yang ditakrifkan menggunakan fungsi upper_bound() dan selepas itu ia memaparkan hasil perbandingan:

Kesimpulan

Fungsi upper_bound() ialah fungsi yang mengembalikan iterator yang menunjuk ke elemen pertama dalam julat diisih yang lebih besar daripada nilai yang diberikan. Untuk mencari nombor pertama dalam selang yang lebih besar daripada atau sama dengan nombor yang ditentukan, gunakan fungsi upper_bound() dalam C++. Ini boleh berguna untuk tugas seperti mencari nombor tertinggi seterusnya dalam senarai atau mencari elemen pertama dalam tatasusunan diisih yang lebih besar daripada ambang tertentu.