Struktur Data C++: Panduan untuk Pemula tentang Struktur
Helo kepada semua pembangun C++ masa depan! Hari ini, kita akan menyusuri perjalanan yang menarik ke atas dunia struktur C++. Jangan khawatir jika anda baru untuk pemrograman – saya akan menjadi pemandu anda yang mesra, membuka konsep yang kompleks menjadi pecahan kecil dan mudah untuk ditelan. Jadi, rakamkan minuman kesukaan anda, dapatkan kenyamanan, dan mari kita melompat!
Apakah itu Struktur?
Sebelum kita masuk ke atas detil, mari kita mulakan dengan asas. Bayangkan anda sedang menguruskan satu peristiwa (kerana siapa yang tidak suka peristiwa yang baik, kan?). Anda perlu untuk mengesan butiran berbeza bagi setiap tetamu – nama mereka, umur, dan sama ada mereka membawa hidangan. Di atas C++, struktur (atau struct
) adalah seperti rak yang boleh menahan semua jenis maklumat yang berbeza tentang entiti tunggal (dalam kes ini, tetamu) di atas satu paket yang kemas.
Definisi Struktur
Mari lihat bagaimana kita boleh membuat struktur tetamu peristiwa kita di atas C++:
struct TetamuPeristiwa {
string nama;
int umur;
bool membawaHidangan;
};
Berikut adalah apa yang berlaku di atas kod ini:
- Kita mula dengan kata kunci
struct
untuk memberitahu C++ kita sedang membuat struktur. - Kita memberikan struktur kita nama,
TetamuPeristiwa
. - Di atas rakis
{}
, kita definisikan ahli struktur kita:
-
nama
adalah rakau untuk menyimpan nama tetamu -
umur
adalah integer bagi umur tetamu -
membawaHidangan
adalah boolean (benar/palsu) untuk menunjukkan jika mereka membawa makanan
Ingat untuk mengakhiri definisi struktur anda dengan tanda semicolon ;
. Ini adalah kesilapan umum untuk melupakan ini, jadi sentiasa periksa sekali lagi!
Mengakses Ahli Struktur
Sekarang kita ada TetamuPeristiwa
struktur, mari lihat bagaimana kita boleh menggunakannya untuk mengesan tetamu kita:
int utama() {
TetamuPeristiwa alice;
alice.nama = "Alice";
alice.umur = 25;
alice.membawaHidangan = true;
cout << alice.nama << " adalah " << alice.umur << " tahun dan ";
if (alice.membawaHidangan) {
cout << "membawa hidangan ke atas peristiwa!";
} else {
cout << "tidak membawa hidangan ke atas peristiwa.";
}
return 0;
}
Di atas contoh:
- Kita membuat pembolehubah
TetamuPeristiwa
yang dipanggilalice
. - Kita guna operator titik (
.
) untuk mengakses dan tetapkan ahlialice
. - Kita kemudian guna operator titik yang sama untuk mengakses ahli apabila mencetak maklumat tentang Alice.
Apabila anda menjalankan kod ini, ia akan menghasilkan:
Alice adalah 25 tahun dan membawa hidangan ke atas peristiwa!
Struktur sebagai Argumen Fungsi
Struktur menjadi lebih kuat apabila kita gunakannya dengan fungsi. Mari kita buat fungsi untuk menyambut tetamu peristiwa kita:
void sambutTetamu(TetamuPeristiwa tetamu) {
cout << "Selamat datang, " << tetamu.nama << "! ";
if (tetamu.membawaHidangan) {
cout << "Terima kasih kerana membawa hidangan!";
} else {
cout << "Nikmati makanan!";
}
cout << endl;
}
int utama() {
TetamuPeristiwa bob = {"Bob", 30, false};
sambutTetamu(bob);
return 0;
}
Di atas kod:
- Kita definisikan fungsi
sambutTetamu
yang mengambilTetamuPeristiwa
sebagai argumen. - Di atas
utama()
, kita membuat tetamu barubob
menggunakan inisialisasi ringkas. - Kita luluskan
bob
ke fungsisambutTetamu
kita.
Ini akan menghasilkan:
Selamat datang, Bob! Nikmati makanan!
Penunjuk ke Struktur
Sekarang, mari kita bercakap tentang penunjuk. Bayangkan anda adalah perancang peristiwa, dan anda mahu untuk dapat mengemas kini maklumat tetamu secara efisien. Penunjuk membenarkan kita untuk mengakses dan mengubahsuai struktur asal secara langsung, bukannya bekerja dengan salinan.
void kemasKiniUmurTetamu(TetamuPeristiwa* tetamu, int umurBaru) {
tetamu->umur = umurBaru;
}
int utama() {
TetamuPeristiwa charlie = {"Charlie", 22, true};
cout << "Umur Charlie sebelum kemas kini: " << charlie.umur << endl;
kemasKiniUmurTetamu(&charlie, 23);
cout << "Umur Charlie selepas kemas kini: " << charlie.umur << endl;
return 0;
}
Di atas contoh:
- Kita definisikan fungsi
kemasKiniUmurTetamu
yang mengambil penunjuk keTetamuPeristiwa
dan umur baru. - Kita guna operator anak panah
->
untuk mengakses ahli struktur melalui penunjuk. - Di atas
utama()
, kita luluskan alamatcharlie
ke fungsi kita menggunakan operator&
.
Kod ini akan menghasilkan:
Umur Charlie sebelum kemas kini: 22
Umur Charlie selepas kemas kini: 23
Kata Kunci typedef
Terakhir tetapi tidak ketinggalan, mari kita bercakap tentang typedef
. Kata kunci ini membenarkan kita untuk membuat alias bagi jenis data, membuat kod kita lebih mudah dibaca dan dipelihara.
typedef struct {
string nama;
int umur;
bool membawaHidangan;
} Tetamu;
int utama() {
Tetamu david = {"David", 28, false};
cout << david.nama << " adalah " << david.umur << " tahun." << endl;
return 0;
}
Di atas kod:
- Kita guna
typedef
untuk membuat aliasTetamu
bagi struktur kita. - Sekarang kita boleh guna
Tetamu
secara langsung bukannyastruct TetamuPeristiwa
.
Ini menjadikan kod kita lebih bersih dan lebih mudah dibaca, terutamanya apabila berurusan dengan struktur yang kompleks.
Penutup
Tahniah! Anda baru sahaja mengambil langkah pertama anda ke atas dunia struktur C++. Kita telah membincangkan banyak bidang, dari definisi struktur hingga penggunaannya dengan fungsi dan penunjuk. Ingat, latihan membuat perferct, jadi jangan ragu untuk untuk menjalankan konsep ini di atas kod anda sendiri.
Berikut adalah rakaman cepat atas kaedah yang kita telah membincangkan:
Kaedah | Keterangan |
---|---|
Definisi Struktur | struct NamaStruktur { /* ahli */ }; |
Mengakses Ahli | Gunakan operator titik: pembolehubahStruktur.ahli
|
Struktur sebagai Argumen Fungsi | Luluskan oleh nilai: namaFungsi(NamaStruktur pembolehubah)
|
Penunjuk ke Struktur | Gunakan operator anak panah: penunjukStruktur->ahli
|
typedef | Buat alias: typedef struct { /* ahli */ } NamaAlias;
|
Teruskan untuk mengkod, tetap khusyuhusyen, dan happy structuring!
Credits: Image by storyset