Pengikatan Struktur dalam C++

Pengikatan Struktur Dalam C



Pengikatan struktur memungkinkan Anda untuk mengekstrak elemen dari struct atau kelas dan menugaskannya ke variabel yang berbeda tanpa memiliki akses ke setiap anggota secara terpisah. Pengikatan struktur digunakan untuk menghilangkan kebutuhan akan ekstraksi elemen secara manual dan meningkatkan keterbacaan dan keringkasan kode dengan mengizinkan pembongkaran secara bersamaan dari banyak elemen dari sebuah struct atau kelas ke dalam variabel yang berbeda. Dalam tutorial ini, kita akan membahas cara kerja, sintaks, dan contoh pengikatan struktur di C++.

Apa itu Structured Binding di C++?

Pengikatan struktur adalah fitur C++ yang ditambahkan di C++17 yang juga memungkinkan dekomposisi struct atau tuple menjadi variabel individual, meningkatkan keringkasan kode. Ini dapat digunakan untuk membuat sintaks akses anggota struct lebih sederhana dan menurunkan kemungkinan kesalahan yang disebabkan oleh kesalahan ketik atau pengindeksan yang salah.

Sintaksis







Sintaks pengikatan struktur dalam C++ adalah sebagai berikut:



mobil [ var1 , var2 , ... ] = ekspresi ;

Dalam sintaks untuk pengikatan struktur di C++, di mana 'var1', dan 'var2' adalah nama variabel, dan 'ekspresi' adalah ekspresi yang menghasilkan struct atau kelas. Kami menggunakan kata kunci otomatis untuk mendeklarasikan variabel yang dibuat secara otomatis.



Pengubah

Pengubah dapat digunakan berpasangan dengan binding terstruktur. Sintaks mereka disebutkan di bawah ini:





mobil & [ A , B , C , ... ] = ekspresi ;

mobil && [ A , B , C , ... ] = ekspresi ;

Operator “&” atau “&&” yang digunakan dalam deklarasi menentukan apakah pengikatan adalah referensi nilai atau nilai. Referensi lvalue diwakili oleh '&' menetapkan referensi yang dapat digunakan untuk mengubah nilai variabel yang mengikat. Perubahan pada nilai yang dibuat menggunakan referensi akan terlihat pada struktur asli atau tuple.

Referensi nilai diwakili oleh '&&', di sisi lain, memberikan referensi yang terbatas untuk digunakan untuk membaca nilai variabel yang termasuk dalam penjilidan. Berguna untuk mengikat objek sementara atau nilai yang perlu dihancurkan karena menghindari pembuatan replika objek, ini dapat menghabiskan memori dan waktu.



Contoh 1: Pengikatan Struktur di C++

Berikut ini adalah contoh pengikatan struktur C++:

#sertakan

menggunakan namespace std ;

struct kubus

{

int X ;

int Dan ;

int Dengan ;

} ;

int utama ( )

{

c-cube = { 10 , dua puluh , 30 } ;

mobil [ x_coordinate , y_coordinate , z_koordinat ] = C ;

cout << 'sumbu X :' << x_coordinate << endl ;

cout << 'sumbu Y:' << y_coordinate << endl ;

cout << 'sumbu Z :' << z_koordinat << endl ;

kembali 0 ;

}

Pada contoh di atas, kita mendeklarasikan struct cube dengan tiga bilangan bulat x, y, dan z. Struktur menunjukkan sebuah kubus di ruang angkasa. Variabel c bertipe kubus dibuat dan diinisialisasi dengan nilai (10,20,30). Dalam pengikatan struktur kode ini memberikan nilai anggota x, y, dan z dari struct ke masing-masing variabel x_coordinate, y_coordinate, z_coordinate dengan menggunakan sintaks auto[ x_coordinate, y_coordinate, z_coordinate ] = c. Output di atas ditunjukkan di bawah ini:

Contoh 2: Pengikatan Struktur di C++ untuk Membongkar Struk

Berikut ini adalah contoh pengikatan struktur untuk membongkar struct:

#termasuk

#sertakan

menggunakan namespace std ;

struct Murid {

nama string ;

int usia ;

} ;

int utama ( ) {

Siswa s { 'Hamzah' , 32 } ;

mobil [ nama , usia ] = S ;

cout << nama << ' adalah ' << usia << ' tahun.' << endl ;

kembali 0 ;

}

Dalam kode di atas, sebuah Student struct memiliki dua anggota: a nama itu adalah string dan usia itu adalah bilangan bulat. Kemudian, kami membuat objek Siswa dan menetapkan nilai awal ke setiap anggotanya. Anggota s kemudian dipisahkan menjadi nama dan umur variabel menggunakan pengikatan struktural, dan nilai-nilai ini kemudian dicetak seperti pada tangkapan layar di bawah ini:

Contoh 3: Pengikatan Struktur di C++ Dengan Pengubah

Di bawah ini adalah contoh pengikatan struktur yang menggunakan pengubah untuk memperbarui nilai variabel sebagai num1 dan num2:

#termasuk

#sertakan

menggunakan namespace std ;

int utama ( ) {

tupel < int , int > T { 25 , dua puluh } ;

mobil & [ angka1 , angka2 ] = T ;

cout << 'Nilai angka1 =' << angka1 << ', angka2 = ' << angka2 << ' \N ' ;

angka1 = 30 ;

cout << 'Nilai num1 yang diubah =' << angka1 << ', angka2 = ' << angka2 <<

' \N ' ;

mobil && [ nomor 3 , angka4 ] = make_tuple ( 100 , 250 ) ;

cout << 'Sekarang nilai num3 =' << nomor 3 << ', angka4 = ' << angka4 << ' \N ' ;

kembali 0 ;

}

Pada kode sebelumnya, kita membuat tuple t dan menggunakan referensi lvalue untuk menautkan komponennya ke num1 dan num2. Kami kemudian mengubah nilai num1 menjadi 30 dan menampilkan nilai num1 dan num2. Juga buat tuple sementara melalui make_tuple(100, 250) dan gunakan referensi rvalue untuk mengikat elemennya ke num3 dan num4. Nilai num3 dan num4 kemudian dicetak karena num3 dan num4 digabungkan dengan referensi nilai, mereka tidak dapat digunakan untuk mengubah tupel sementara yang dibentuk oleh make_tuple(100, 250). Mereka hanya mampu membaca darinya. Ketika Anda menjalankan program, hasil berikut akan ditampilkan di layar:

Kesimpulan

Pengikatan struktur adalah fitur dalam C++ yang membongkar banyak nilai dari sebuah struct atau kelas ke dalam variabel individual dalam satu ekspresi, menghasilkan kode yang lebih ringkas, mudah dibaca, dan lebih aman. Pengikatan struktur menggunakan pengubah merampingkan proses perubahan nilai dalam objek terstruktur.