Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode

Apa Itu Array Dinamis?

Array dinamis cukup mirip dengan array reguler, tetapi ukurannya dapat diubah selama program berjalan. Elemen ArrayDinamis menempati blok memori kontigu.

Setelah array dibuat, ukurannya tidak dapat diubah. Namun, array dinamis berbeda. Array dinamis dapat memperluas ukurannya bahkan setelah diisi.

Selama pembuatan array, dialokasikan jumlah memori yang ditentukan sebelumnya. Ini bukan kasus dengan array dinamis karena ia meningkatkan ukuran memori dengan faktor tertentu saat diperlukan.

Dalam tutorial C++ ini, Anda akan mempelajari

Faktor yang Mempengaruhi Kinerja Array Dinamis

Ukuran awal array dan faktor pertumbuhannya menentukan kinerjanya. Perhatikan poin berikut:

  1. Jika array memiliki ukuran kecil dan faktor pertumbuhan kecil, ia akan terus mengalokasikan memori ulang lebih sering. Ini akan mengurangi kinerja array.
  2. Jika array memiliki ukuran besar dan faktor pertumbuhan besar, ia akan memiliki blok memori yang tidak terpakai yang besar. Akibatnya, operasi pengubahan ukuran mungkin memakan waktu lebih lama. Ini akan mengurangi kinerja array.

Kata Kunci new

Dalam C++, kita dapat membuat array dinamis menggunakan kata kunci new. Jumlah item yang akan dialokasikan ditentukan dalam pasang kurung siku. Nama tipe harus mendahului ini. Jumlah item yang diminta akan dialokasikan.

Sintaks:

Kata kunci new memiliki sintaks berikut:

pointer_variable = new data_type; 

pointer_variable adalah nama variabel pointer.

data_type harus merupakan tipe data C++ yang valid.

Kata kunci kemudian mengembalikan pointer ke item pertama. Setelah membuat array dinamis, kita dapat menghapusnya menggunakan kata kunci delete.

Contoh 1:

#include<iostream> using namespace std; int main() { int x, n; cout << "Enter the number of items:" << "\n"; cin >>n; int *arr = new int(n); cout << "Enter " << n << " items" << endl; for (x = 0; x < n; x++) { cin >> arr[x]; } cout << "You entered: "; for (x = 0; x < n; x++) { cout << arr[x] << " "; } return 0; } 


Output:

Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode

Berikut adalah screenshot kode:

Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode

Penjelasan Kode:

  1. Sertakan file header iostream ke dalam program kami untuk menggunakan fungsinya.
  2. Sertakan namespace std dalam program kami agar dapat menggunakan kelasnya tanpa memanggilnya.
  3. Panggil fungsi main(). Logika program harus ditambahkan dalam tubuh fungsi.
  4. Deklarasikan dua variabel integer x dan n.
  5. Cetak beberapa teks di konsol meminta pengguna memasukkan nilai variabel n.
  6. Baca input pengguna dari keyboard dan tetapkan ke variabel n.
  7. Deklarasikan array untuk menampung total n integer dan tetapkan ke variabel pointer *arr.
  8. Cetak pesan meminta pengguna memasukkan n item.
  9. Gunakan loop for untuk membuat variabel loop x untuk mengiterasi item yang dimasukkan pengguna.
  10. Baca elemen yang dimasukkan pengguna dan simpan dalam array arr.
  11. Akhir tubuh loop for.
  12. Cetak beberapa teks di konsol.
  13. Gunakan loop for untuk membuat variabel loop x untuk mengiterasi item array.
  14. Cetak nilai yang terkandung dalam array bernama arr di konsol.
  15. Akhir tubuh loop for.
  16. Program harus mengembalikan nilai setelah penyelesaian sukses.
  17. Akhir tubuh fungsi main().

CATATAN: Dalam contoh di atas, pengguna diizinkan menentukan ukuran array selama runtime. Ini berarti ukuran array ditentukan selama runtime.

Menginisialisasi Array yang Dialokasikan Secara Dinamis

Mudah untuk menginisialisasi array dinamis ke 0.

Sintaks:

int *array{ new int[length]{} }; 

Dalam sintaks di atas, length menunjukkan jumlah elemen yang akan ditambahkan ke array. Karena kita perlu menginisialisasi array ke 0, ini harus dikosongkan.

Kita dapat menginisialisasi array dinamis menggunakan daftar inisialisasi. Buat contoh yang menunjukkan hal ini.

Contoh 2:

#include <iostream> using namespace std; int main(void) { int x; int *array{ new int[5]{ 10, 7, 15, 3, 11 } }; cout << "Array elements: " << endl; for (x = 0; x < 5; x++) { cout << array[x] << endl; } return 0; } 

Output:

Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode

Berikut adalah screenshot kode:

Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode

Penjelasan Kode:

  1. Sertakan file header iostream ke dalam program kami untuk menggunakan fungsinya.
  2. Sertakan namespace std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
  3. Panggil fungsi main(). Logika program harus ditambahkan dalam tubuh fungsi.
  4. Deklarasikan variabel integer bernama x.
  5. Deklarasikan array dinamis bernama array menggunakan daftar inisialisasi. Array akan menampung 5 elemen integer. Perhatikan bahwa kita tidak menggunakan operator "=" antara panjang array dan daftar inisialisasi.
  6. Cetak beberapa teks di konsol. endl adalah kata kunci C++ yang berarti akhir baris. Ini memindahkan kursor ke kalimat berikutnya.
  7. Gunakan loop for untuk mengiterasi elemen array.
  8. Cetak isi array bernama array di konsol.
  9. Akhir tubuh loop for.
  10. Program harus mengembalikan nilai setelah penyelesaian sukses.
  11. Akhir tubuh fungsi main().

Mengubah Ukuran Array

Panjang array dinamis ditentukan saat waktu alokasi.

Namun, C++ tidak memiliki mekanisme bawaan untuk mengubah ukuran array setelah dialokasikan.

Anda dapat, namun, mengatasi tantangan ini dengan mengalokasikan array baru secara dinamis, menyalin elemen, lalu menghapus array lama.

Catatan: teknik ini rentan terhadap kesalahan, oleh karena itu, coba hindari.

Menghapus Array Secara Dinamis

Array dinamis harus dihapus dari memori komputer setelah tujuannya terpenuhi. Pernyataan delete dapat membantu Anda menyelesaikan hal ini. Ruang memori yang dirilis kemudian dapat digunakan untuk menampung sekumpulan data lain. Namun, bahkan jika Anda tidak menghapus array dinamis dari memori komputer, ia akan dihapus secara otomatis setelah program berakhir.

Catatan:

Untuk menghapus array dinamis dari memori komputer, Anda harus menggunakan delete[], bukan delete. [] memberi tahu CPU untuk menghapus beberapa variabel daripada satu variabel. Penggunaan delete daripada delete[] saat menangani array dinamis dapat menghasilkan masalah. Contoh masalah tersebut meliputi kebocoran memori, korupsi data, crash, dll.

Contoh 3:

#include<iostream> using namespace std; int main() { int x, n; cout << "How many numbers will you type?" << "\n"; cin >>n; int *arr = new int(n); cout << "Enter " << n << " numbers" << endl; for (x = 0; x < n; x++) { cin >> arr[x]; } cout << "You typed: "; for (x = 0; x < n; x++) { cout << arr[x] << " "; } cout << endl; delete [] arr; return 0; } 

Output:

Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode

Berikut adalah screenshot kode:

Menguasai Alokasi Array Dinamis C++: Panduan Praktis dengan Contoh Kode

Penjelasan Kode:

  1. Sertakan file header iostream dalam program kami untuk menggunakan fungsinya.
  2. Sertakan namespace std dalam program kami untuk menggunakan kelasnya tanpa memanggilnya.
  3. Panggil fungsi main(). Logika program harus ditambahkan dalam tubuh fungsi.
  4. Deklarasikan dua variabel x dan n dengan tipe data integer.
  5. Cetak beberapa teks di konsol. Teks akan meminta pengguna menyatakan jumlah angka yang akan dimasukkan.
  6. Baca input pengguna dari keyboard. Nilai input akan ditetapkan ke variabel n.
  7. Deklarasikan variabel pointer *arr. Array arr akan menyisihkan memori untuk menyimpan total n integer.
  8. Cetak pesan di konsol meminta pengguna memasukkan n angka.
  9. Buat loop for dan variabel loop x untuk mengiterasi angka yang dimasukkan pengguna.
  10. Baca angka yang dimasukkan pengguna dan simpan dalam array arr.
  11. Akhir tubuh loop for.
  12. Cetak beberapa teks di konsol.
  13. Gunakan loop for dan variabel loop x untuk mengiterasi isi array arr.
  14. Cetak nilai array arr di konsol.
  15. Akhir tubuh loop for.
  16. Cetak baris kosong di konsol.
  17. Bebaskan memori array arr.
  18. Program akan mengembalikan nilai setelah selesai dengan sukses.
  19. Akhir tubuh fungsi main().

Ringkasan:


Bahasa C

  1. Menguasai Array C#: Deklarasi, Inisialisasi, dan Operasi
  2. Cara Meneruskan Array ke Fungsi dalam C++: Panduan Praktis
  3. Alokasi Memori Dinamis dalam C: Menguasai malloc, calloc, realloc, dan free
  4. Array C++ Dibongkar: Deklarasi, Inisialisasi, dan Teknik Pointer
  5. Operator C++ Dijelaskan: Tipe, Contoh, dan Program Contoh
  6. Menguasai Switch-Case C++: Sintaks, Penggunaan, dan Contoh Praktis
  7. Struct C++ Dijelaskan dengan Contoh Praktis
  8. Menguasai std::list dalam C++: Sintaks, Fungsi & Contoh Praktis
  9. Struktur vs Kelas C++: Perbedaan Utama, Sintaks, dan Kasus Penggunaan Terbaik
  10. Selection Sort di Java: Contoh Langkah demi Langkah & Kode Lengkap