Apa itu Array?
Array adalah struktur data yang menyimpan unsur jenis data yang sama secara berurutan. Susunan C ++ mempunyai ukuran tetap.
Anda dapat melihat array sebagai kumpulan pemboleh ubah dari jenis data yang serupa. Daripada menyatakan setiap pemboleh ubah dan memberikannya satu nilai secara berasingan, anda boleh menyatakan satu pemboleh ubah (susunan) dan menambahkan nilai dari pelbagai pemboleh ubah itu. Setiap nilai tambah pada array dikenali oleh indeks.
Dalam tutorial C ++ ini, anda akan belajar:
- Apa itu Array?
- Mengapa kita memerlukan tatasusunan?
- Menyatakan array dalam C ++
- Permulaan Array
- Jenis Susunan
- Array Satu Dimensi
- Array pelbagai dimensi
- Array Dua Dimensi
- Array Tiga-Dimensi
- Penunjuk ke Array
- Mengakses nilai Array
- Kelebihan Array dalam C ++
- Kekurangan Array dalam C ++
Mengapa kita memerlukan tatasusunan?
Susunan sangat penting dalam mana-mana bahasa pengaturcaraan. Mereka menyediakan cara yang lebih mudah untuk menyimpan pemboleh ubah atau pengumpulan data dari jenis data yang serupa dan bukannya menyimpannya secara berasingan. Setiap nilai array akan diakses secara berasingan.
Menyatakan array dalam C ++
Array deklarasi dalam C ++ melibatkan menyatakan jenis serta bilangan elemen yang akan disimpan oleh array. Sintaks:
type array-Name [ array-Size ];
Peraturan untuk menyatakan array satu dimensi dalam C ++.
- Jenis: Jenis adalah jenis elemen yang akan disimpan dalam array, dan mestilah jenis data C ++ yang sah.
- Array-Name: array-Name adalah nama yang akan diberikan kepada array.
- Array-Size: Array-Size adalah bilangan elemen yang akan disimpan dalam array. Ia mestilah bilangan bulat dan lebih besar daripada 0.
Contohnya, anda boleh membuat tatasusunan yang diberi nama umur dan menyimpan umur 5 orang pelajar seperti berikut:
int age[5];
Umur tatasusunan akan menyimpan 5 bilangan bulat yang mewakili usia pelajar yang berbeza.
Permulaan Array
Inisialisasi array adalah proses menetapkan / menyimpan unsur ke array. Permulaan boleh dilakukan dalam satu pernyataan atau satu persatu. Perhatikan bahawa elemen pertama dalam array disimpan pada indeks 0, sementara elemen terakhir disimpan pada indeks n-1, di mana n adalah jumlah elemen dalam array.
Dalam kes array umur, elemen pertama akan disimpan pada indeks 0, sementara elemen terakhir akan disimpan pada indeks 4.
Mari kita gunakan susunan umur untuk menunjukkan bagaimana inisialisasi array dapat dilakukan:
int age[5] = {19, 18, 21, 20, 17};
Jumlah elemen dalam {} tidak boleh melebihi nilai yang dinyatakan dalam []. Elemen 19 berada pada indeks 0, 18 pada indeks 1, 21 pada indeks 2, 20 pada indeks 3 dan 17 pada indeks 4. Jika anda tidak menyatakan bilangan elemen yang akan disimpan dalam array dalam [], array hanya akan cukup besar untuk menahan elemen yang ditambahkan dalam {}. Sebagai contoh:
int age[] = {19, 18, 21, 20, 17};
Pernyataan di atas akan menghasilkan susunan yang sama persis dengan yang sebelumnya. Anda juga boleh menetapkan satu elemen ke array menggunakan indeksnya. Sebagai contoh:
age[3] = 20;
Pernyataan di atas akan menyimpan nilai 20 pada indeks 3 larik bernama umur. Ini bermaksud bahawa 20 akan menjadi elemen ke- 4 dari array.
Jenis Susunan
Terdapat dua jenis susunan C ++:
- Array Satu Dimensi
- Array pelbagai dimensi
- Penunjuk ke Array
Array Satu Dimensi
Ini adalah susunan di mana item data disusun secara linear dalam satu dimensi sahaja. Ia biasanya dipanggil array 1-D. Sintaks:
datatype array-name[size];
- Nama array adalah nama array.
- Ukurannya adalah jumlah item yang akan disimpan dalam array.
Sebagai contoh:
#includeusing namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };for (int x = 0; x < 5; x++){cout < Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Termasuk fail header iostream dalam kod kami. Ini akan membolehkan kita membaca dan menulis ke konsol.
- Termasuk ruang nama std untuk menggunakan kelas dan fungsinya tanpa memanggilnya.
- Memanggil fungsi utama () di mana logik program harus ditambahkan.
- Permulaan fungsi utama () fungsi.
- Menyatakan array bernama umur untuk menyimpan 5 bilangan bulat. 5 bilangan bulat juga telah diinisialisasi.
- Buat pemboleh ubah integer x menggunakan gelung untuk.
- Permulaan badan untuk gelung.
- Menggunakan pemboleh ubah gelung x untuk mengulang nilai usia array dan mencetaknya di konsol. "\ N" adalah watak barisan baru dan dicetak dalam baris baru selepas setiap lelaran.
- Akhir badan untuk gelung.
- Akhir badan utama () fungsi.
Array pelbagai dimensi
Ini adalah susunan di mana item data disusun untuk membentuk susunan tatasusunan. Susunan pelbagai dimensi boleh mempunyai sebilangan dimensi, tetapi susunan dua dimensi dan tiga dimensi adalah umum. Sintaks:
datatype array-name[d1][d2][d3]… [dn];Nama array adalah nama array yang akan mempunyai dimensi n. Sebagai contoh:
Array Dua Dimensi
Array 2D menyimpan data dalam senarai dengan array 1-D. Ia adalah matriks dengan baris dan lajur. Untuk menyatakan array 2D, gunakan sintaks berikut:
type array-Name [ x ][ y ];Jenis mestilah jenis data C ++ yang sah. Lihat susunan 2D sebagai jadual, di mana x menunjukkan bilangan baris sementara y menunjukkan bilangan lajur. Ini bermaksud bahawa anda mengenal pasti setiap elemen dalam array 2D menggunakan bentuk [x] [y], di mana x adalah bilangan baris dan y bilangan lajur di mana elemen tersebut berada.
Berikut adalah contoh cara memulakan array 2D:
int a[2][3] = {{0, 2, 1} , /* row at index 0 */{4, 3, 7} , /* row at index 1 */};Dalam contoh di atas, kita mempunyai array 2D yang dapat dilihat sebagai matriks 2x3. Terdapat 2 baris dan 3 lajur. Elemen 0 dapat diakses sebagai [0] [1] kerana terletak di persimpangan baris diindeks 0 dan lajur diindeks 1. Elemen 3 dapat diakses sebagai [1] [2] kerana terletak di persilangan baris diindeks 1 dan lajur diindeks 2.
Perhatikan bahawa kami hanya menambah pendakap keriting untuk membezakan baris elemen yang berbeza. Inisialisasi juga dapat dilakukan seperti berikut:
int a[2][3] = {0, 2, 1, 4, 3, 7};};Contoh C ++ berikut menunjukkan cara memulakan dan melintasi array 2D:
#includeusing namespace std;int main(){// a 2x3 arrayint a[3][2] = { {0, 2}, {1, 4}, {3, 7} };// traverse array elementsfor (int i=0; i<3; i++)for (int j=0; j<2; j++){cout << "a[" < Pengeluaran:
Berikut adalah tangkapan skrin kod di atas:
Penjelasan Kod:
- Termasuk fail header iostream dalam kod kami. Ini akan membolehkan kita membaca dan menulis ke konsol.
- Termasuk ruang nama std untuk menggunakan kelas dan fungsinya tanpa memanggilnya.
- Memanggil fungsi utama () di mana kod harus ditambahkan.
- Permulaan fungsi utama () fungsi.
- Satu komen. Penyusun C ++ akan melangkau ini.
- Menyatakan susunan 2D 3 baris dan 2 lajur. Item juga telah ditambahkan ke array.
- Satu komen. Penyusun C ++ akan melangkau ini.
- Membuat pemboleh ubah i menggunakan a untuk gelung. Pemboleh ubah ini akan berulang pada indeks baris array.
- Membuat pemboleh ubah j menggunakan a untuk gelung. Pemboleh ubah ini akan berulang pada indeks lajur array.
- Permulaan badan gelung.
- Cetak nilai pemboleh ubah i dan j pada konsol di dalam tanda kurung persegi pada konsol.
- Cetak nilai yang disimpan pada indeks [i] [j] array a.
- Hujung badan gelung.
- Fungsi utama () harus mengembalikan nilai integer jika program berjalan dengan baik.
- Akhir badan utama () fungsi.
Array Tiga-Dimensi
Susunan 3D ialah tatasusunan tatasusunan. Setiap elemen dalam array 3D dikenal pasti oleh satu set 3 indeks. Untuk mengakses elemen array 3D, kami menggunakan tiga untuk gelung. Sebagai contoh:
#includeusing namespace std;void main(){int a[2][3][2] = {{{4, 8},{2, 4},{1, 6}}, {{3, 6},{5, 4},{9, 3}}};cout << "a[0][1][0] = " << a[0][1][0] << "\n";cout << "a[0][1][1] = " << a[0][1][1] << "\n";} Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Termasuk fail header iostream dalam kod kami. Ini akan membolehkan kita membaca dan menulis ke konsol.
- Termasuk ruang nama std untuk menggunakan kelas dan fungsinya tanpa memanggilnya.
- Memanggil fungsi utama () di mana logik program harus ditambahkan.
- Permulaan fungsi utama () fungsi.
- Menyatakan array 3D yang diberi nama berukuran 2x3x2. Nilai array juga telah diinisialisasi.
- Mengakses item yang disimpan di indeks [0] [1] [0] array dan mencetaknya di konsol.
- Mengakses item yang disimpan di indeks [0] [1] [1] tatasusunan dan mencetaknya di konsol.
- Akhir badan utama () fungsi.
Penunjuk ke Array
Penunjuk adalah pemboleh ubah yang menyimpan alamat. Selain menggunakan penunjuk untuk menyimpan alamat pemboleh ubah, kita dapat menggunakannya untuk menyimpan alamat sel array. Nama tatasusunan selalu menunjukkan elemen pertama. Pertimbangkan pernyataan yang diberikan di bawah:
int age[5];Umur adalah penunjuk kepada $ age [0], alamat elemen pertama bagi array bernama age. Pertimbangkan contoh berikut:
#includeusing namespace std;int main(){int *john;int age[5] = { 19, 18, 21, 20, 17 };john = age;cout << john << "\n";cout << *john;} Pengeluaran:
Perhatikan bahawa nilai pertama dari output di atas dapat mengembalikan nilai yang berbeza bergantung pada alamat yang diberikan pada elemen pertama array dalam memori komputer anda.
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Termasuk fail header iostream dalam kod kami. Ini akan membolehkan kita membaca dan menulis ke konsol.
- Termasuk ruang nama std untuk menggunakan kelas dan fungsinya tanpa memanggilnya.
- Memanggil fungsi utama () di mana logik program harus ditambahkan.
- Permulaan fungsi utama () fungsi.
- Menyatakan pemboleh ubah penunjuk bernama * john.
- Menyatakan bilangan bulat bernama umur untuk menyimpan 5 bilangan bulat. Nilai bilangan bulat juga telah diinisialisasi.
- Menetapkan pemboleh ubah john nilai alamat item yang disimpan dalam indeks pertama umur array.
- Mencetak nilai pemboleh ubah john, yang merupakan alamat item yang disimpan dalam indeks pertama usia array.
- Mencetak nilai pertama yang disimpan pada usia array.
- Akhir badan utama () fungsi.
Nama array boleh digunakan sebagai penunjuk tetap, dan sebaliknya juga benar. Ini bermakna anda boleh mengakses nilai yang disimpan pada indeks 3 umur array dengan * (umur + 3). Sebagai contoh:
#includeusing namespace std;int main() {// an array of 5 elements.int age[5] = { 19, 18, 21, 20, 17 };int *p;p = age;// output array valuescout << "Using pointer: " << endl;for (int x=0; x<5; x++) {cout << "*(p + " << x << ") : ";cout << *(p + x) << endl;}cout << "Using age as address: " << endl;for (int x = 0; x < 5; x++) {cout << "*(age + " << x << ") : ";cout << *(age + x) << endl;}return 0;} Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Termasuk fail header iostream dalam kod kami. Ini akan membolehkan kita membaca dan menulis ke konsol.
- Termasuk ruang nama std untuk menggunakan kelas dan fungsinya tanpa memanggilnya.
- Memanggil fungsi utama () dan permulaan fungsi utama ().
- Satu komen. Penyusun C ++ akan melangkau ini.
- Menyatakan array bernama umur untuk menyimpan 5 bilangan bulat.
- Membuat penunjuk integer p.
- Menetapkan p nilai alamat elemen pertama dari array umur.
- Satu komen. Penyusun C ++ akan melangkau ini.
- Cetak beberapa teks di konsol.
- Buat bilangan bulat x menggunakan a untuk gelung. {Menandakan permulaan badan bagi gelung.
- Cetak nilai x yang digabungkan dengan beberapa teks lain di konsol.
- Cetak nilai * (p + x) pada konsol.
- Akhir badan untuk gelung.
- Cetak beberapa teks di konsol.
- Buat pemboleh ubah x menggunakan a untuk gelung. {Menandakan permulaan badan gelung untuk.
- Cetak nilai x dari 0 hingga 4 di samping beberapa teks lain.
- Cetak nilai * (umur + x).
- Hujung badan gelung untuk.
- Nilai kembali jika program berjaya dijalankan.
- Akhir badan utama () fungsi.
Mengakses nilai Array
Unsur-unsur array diakses menggunakan indeks masing-masing. Indeks elemen yang akan diakses ditambahkan dalam tanda kurung [] tepat setelah nama array. Sebagai contoh:
int john = age[2];Dalam contoh di atas, kita hanya menyatakan bahawa usia john disimpan pada indeks 2 dari array bernama age. Ini bermakna bahawa umur john adalah 3 rd nilai Umur array. Berikut adalah contoh C ++ lengkap yang menunjukkan cara mengakses dan mencetak nilai ini:
#includeusing namespace std;int main(){int age[5] = { 19, 18, 21, 20, 17 };int john = age[2];cout << "The age of John is:"< Pengeluaran:
Berikut adalah tangkapan skrin kod:
Penjelasan Kod:
- Termasuk fail header iostream dalam kod kami. Ini akan membolehkan kita membaca dan menulis ke konsol.
- Termasuk ruang nama std untuk menggunakan kelas dan fungsinya tanpa memanggilnya.
- Memanggil fungsi utama () di mana kod harus ditambahkan.
- Permulaan fungsi utama () fungsi.
- Menyatakan larik bernama umur untuk menyimpan 5 unsur integer.
- Mengakses nilai yang disimpan pada indeks 2 umur array dan menyimpan nilainya dalam pemboleh ubah bernama john.
- Mencetak nilai pemboleh ubah john pada konsol bersama teks lain.
Kelebihan Array dalam C ++
Berikut, kebaikan / faedah menggunakan Array dalam C ++:
- Elemen susunan dapat dilalui dengan mudah.
- Mudah memanipulasi data array.
- Elemen array dapat diakses secara rawak.
- Susunan memudahkan pengoptimuman kod; oleh itu, kita dapat melakukan banyak kerja dengan menggunakan kod yang lebih sedikit.
- Mudah menyusun data array.
Kekurangan Array dalam C ++
- Pelbagai mempunyai ukuran tetap; oleh itu, kita tidak dapat menambahkan elemen baru padanya setelah inisialisasi.
- Memperuntukkan lebih banyak memori daripada keperluan menyebabkan ruang memori terbuang, dan peruntukan memori yang lebih sedikit dapat menimbulkan masalah.
- Bilangan elemen yang akan disimpan dalam array mesti diketahui terlebih dahulu.
Ringkasan
- Array adalah struktur data yang menyimpan elemen dari jenis data yang sama.
- Elemen array disimpan secara berurutan.
- Unsur array dilambangkan menggunakan indeks masing-masing. Elemen pertama berada di indeks 0, sementara elemen terakhir berada di indeks n-1, di mana jumlah elemen array.
- Deklarasi larik melibatkan menentukan jenis data elemen array serta bilangan elemen yang akan disimpan dalam array.
- Susunan satu dimensi menyimpan elemen secara berurutan.
- Susunan dua dimensi menyimpan elemen dalam baris dan lajur.
- Susunan tiga dimensi ialah susunan tatasusunan.
- Elemen boleh ditambahkan ke array menggunakan indeksnya.
- Elemen array diakses menggunakan indeksnya.
- Susunan pelbagai dimensi mempunyai lebih dari satu dimensi.
- Nama array menunjukkan elemen pertamanya.
- Susunan mempunyai ukuran tetap, yang bermaksud bahawa elemen baru tidak dapat ditambahkan ke larik setelah inisialisasi.