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
structuntuk memberitahu C++ kita sedang membuat struktur. - Kita memberikan struktur kita nama,
TetamuPeristiwa. - Di atas rakis
{}, kita definisikan ahli struktur kita:
-
namaadalah rakau untuk menyimpan nama tetamu -
umuradalah integer bagi umur tetamu -
membawaHidanganadalah 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
TetamuPeristiwayang 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
sambutTetamuyang mengambilTetamuPeristiwasebagai argumen. - Di atas
utama(), kita membuat tetamu barubobmenggunakan inisialisasi ringkas. - Kita luluskan
bobke fungsisambutTetamukita.
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
kemasKiniUmurTetamuyang mengambil penunjuk keTetamuPeristiwadan umur baru. - Kita guna operator anak panah
->untuk mengakses ahli struktur melalui penunjuk. - Di atas
utama(), kita luluskan alamatcharlieke 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
typedefuntuk membuat aliasTetamubagi struktur kita. - Sekarang kita boleh guna
Tetamusecara 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
