Jadi mari kita mulakan dengan perbezaan antara satu dimensi dan dua dimensi array bersama dengan carta perbandingan.
Carta Perbandingan:
Asas untuk Perbandingan | Satu Dimensi | Dua Dimensi |
---|---|---|
Asas | Simpan satu senarai elemen jenis data yang serupa. | Simpan 'senarai senarai' atau 'pelbagai array' atau 'array satu dimensi tatasusunan'. |
Perisytiharan | / * deklarasi dalam C ++ jenis variable_name [size]; * / / * deklarasi di Jawa taip variable_name []; variable_name = jenis baru [saiz]; * / | / * deklarasi dalam C ++ taip variable_name [size1] [size2]; * / / * deklarasi di Jawa type variable_name = new int [size1] [size2]; * / |
Perisytiharan Alternatif | / * Di Jawa int [] a = new int [10]; * / | / * Di Jawa int [] [] a = new int [10] [20]; * / |
Jumlah Saiz dalam Bita | Jumlah Bytes = sizeof (jenis pembolehubah array) * saiz array. | Jumlah Bytes = sizeof (jenis variabel pembolehubah) * saiz indeks pertama * saiz indeks kedua. |
Menerima parameter | Ia boleh diterima dalam penunjuk, array bersaiz atau array yang tidak disahkan. | Parameter yang diterima mesti menentukan dimensi paling kanan array. |
Dimensi | Satu dimensi. | Dua dimensi. |
Definisi Array Satu Dimensi (array 1-D)
Array Satu Dimensi atau Single-Dimensi dianggap sebagai "senarai pembolehubah jenis data yang serupa", dan setiap pembolehubah boleh dikesan dengan jelas dengan menyatakan indeksnya dalam kurungan persegi yang didahului oleh nama array itu.
Mari bincangkan dalam C ++ Context
// perisytiharan dalam variable_name [jenis] C ++;
Di sini jenis mengisytiharkan jenis data pembolehubah array, dan saiz menentukan bilangan elemen yang akan dipegang oleh array.
Contohnya, jika kita mahu mengisytiharkan pelbagai yang akan mengandungi baki setiap bulan tahun ini.
// contoh int month_balance [12];
_Balance bulan adalah pembolehubah array yang akan memegang 12 integer, yang akan mewakili baki setiap bulan. Sekarang, jika kita ingin mengakses baki bulan 'April' kita hanya perlu menyebutkan nama pembolehubah diikuti dengan kurungan kuadrat yang mengandungi nilai indeks untuk bulan April iaitu 'month_balance [3]'. Tetapi sebagai 'April' adalah bulan keempat tahun tetapi kami telah menyebutkan '[3]' kerana semua array mempunyai 0 sebagai indeks elemen pertama mereka.
Di Jawa, ini boleh dilakukan sebagai
// perisytiharan dalam variable_name jenis Java []; variable_name = jenis baru [saiz];
Di sini, pada mulanya kami telah mengisytiharkan pembolehubah array dengan jenisnya dan kemudian kami telah memperuntukkan memori untuk menggunakan 'baru' dan menetapkan 'baru' kepada pemboleh ubah array yang dinyatakan. Mari kita ambil contoh di atas jika kita mahu mengisytiharkan pelbagai yang akan mengandungi baki dalam setiap bulan tahun ini.
// contoh int month_balance []; month_balance = new int [12];
Di sini, 'baru' memperuntukkan memori kepada pembolehubah array "month_balance", jadi sekarang, mont_balance sekarang akan memegang memori untuk 12 nilai integer.
Array boleh dimulakan apabila mereka diisytiharkan. Pengatur array adalah senarai nilai dipisahkan koma yang dikelilingi oleh pendakap kerinting.
// contoh
int month_balance = {100, 500, 200, 750, 850, 250, 630, 248, 790, 360, 450, 180};
Definisi Array Dua Dimensi (array 2-D)
Kedua-dua C ++ dan Jawa menyokong pelbagai multidimensi. Salah satu bentuk paling mudah bagi pelbagai multidimensi ialah array dua dimensi atau susunan 2-D. Arahan dua Dimensi boleh dianggap sebagai 'tatasusunan tatasusunan' atau 'tatasusunan satu dimensi'. Untuk mengisytiharkan pembolehubah array dua dimensi, kita perlu menentukan nama array diikuti oleh dua kurungan persegi di mana indeks kedua ialah set kedua kurungan persegi.
Array dua dimensi disimpan dalam bentuk matriks baris-lajur, di mana indeks pertama menandakan baris dan indeks kedua menunjukkan lajur. Indeks kedua atau paling kanan array berubah dengan cepat berbanding indeks pertama atau paling kiri ketika mengakses unsur-unsur array.
// perisytiharan dalam variable_name jenis C ++ [size1] [size2];
Sebagai contoh, kami ingin menyimpan baki setiap 30 hari dalam setiap bulan tahun ini, dalam array 2-D.
// contoh int month_balance [12] [30];
Di Jawa, array dua dimensi diperolehi oleh
// deklarasi dalam jenis Java variable_name = int baru [size1] [size2]; // int int month_balance = new int [12] [30];
Oleh kerana kita tidak boleh lulus keseluruhan array sebagai parameter ke fungsi, penunjuk ke elemen pertama array diluluskan. Hujah yang menerima array dua dimensi mesti menentukan ia adalah dimensi paling tepat. Dimensi paling kanan diperlukan kerana pengkompil itu memerlukannya, untuk mengesahkan panjang setiap baris jika ia mahu mengindeks array dengan betul. Jika indeks paling tepat tidak disebut, pengkompil tidak dapat menentukan di mana baris seterusnya bermula.
// contoh dalam Java void receivinging_funct (int a [] [10]) {. . . }
Apabila memori secara dinamik diperuntukkan kepada array dua dimensi di Jawa, indeks kiri paling ditentukan, dan dimensi yang lain dapat diperuntukkan secara berasingan iaitu semua baris array mungkin tidak sama dengan ukurannya.
// contoh dalam int int Java_balance = int baru [12] []; month_balance [0] = new int [31]; month_balance [1] = new int [28]; month_balance [2] = new int [31]; month_balance [3] = new int [30]; month_balance [4] = new int [31]; month_balance [5] = new int [30]; month_balance [6] = new int [31]; month_balance [7] = new int [30]; month_balance [8] = new int [31]; month_balance [9] = new int [30]; month_balance [10] = new int [31]; month_balance [11] = new int [30]; month_balance [12] = new int [31];
Tetapi tidak ada kelebihan untuk melakukannya.
Perbezaan Utama Antara Array Satu Dimensi dan Dua Dimensi
- Aras satu dimensi adalah senarai yang elemennya mempunyai datatype yang sama. Sebaliknya, array dua dimensi adalah senarai elemennya yang terdiri daripada jenis data yang serupa.
- Dalam C ++, apabila array one-dimensi diterima oleh parameter fungsi penerima, tidak perlu menyebut ukuran array sebagai, pengkompil memahami bahawa array jenis (disebutkan datatype bersama-sama dengan parameter) dengan beberapa panjang akan diterima. Dalam array dua dimensi, indeks kedua atau kanan paling tepat akan ditentukan sebagai pengkompil yang perlu tahu di mana akhir baris tunggal dan barisan baru bermula.
- Dalam C ++, array satu dimensi disimpan dalam lokasi memori bersebelahan dalam urutan yang diindeks, manakala array dua dimensi juga disimpan dalam lokasi memori bersebelahan, tetapi kerana terdapat beberapa baris dalam array dua dimensi, penyimpanan baris pertama diikuti oleh kedua dan ketiga dan sebagainya.
Catatan:
Lulus kedua-dua, satu dimensi array serta, array dua dimensi untuk fungsi adalah sama iaitu kedua-duanya diluluskan hanya dengan nama array
// contoh passing_funt (name_of_array);
Kesimpulan:
Dalam kedua-dua dimensi satu dimensi dan dua dimensi, indeks memainkan peranan yang sangat penting kerana ia adalah satu-satunya perkara yang khusus mengenal pasti elemen dalam array. Kedua-dua satu dimensi dan dua dimensi array boleh dimulakan pada masa perisytiharan mereka.