Kembalikan Array Dari Fungsi C++

Return Array From Function C

Array adalah wadah khusus yang memiliki nilai tipe data yang sama. Fungsi dalam C++ melakukan operasi pada array, dan array ini kemudian dikembalikan ke fungsi utama. Ada banyak pendekatan untuk menggambarkan fenomena ini. Dalam panduan ini, beberapa metode umum dijelaskan:

Gunakan Pointer untuk Mengembalikan Static Array

Ketika kita menggunakan array normal, ada kemungkinan mendapatkan semacam hasil yang tidak normal. Untuk menghindari ini, kami menggunakan array statis dalam kode C++ kami. Mari kita memahami contoh yang telah kita gunakan. Dalam fungsi ini, kami telah mendeklarasikan array dengan 5 nilai tipe pengembalian seperti yang disebutkan di sini.



Int *fungsi()



Karena nilainya akan menjadi tipe integer, sehingga ditandai sebagai int pada contoh di bawah ini. Seperti yang kita telah memperkenalkan fungsi sebagai pointer, fungsi akan menjadi tipe pointer. Setelah memasukkan nilai, array dikembalikan ke program utama.



Dalam program utama, kami telah membuat panggilan fungsi. Untuk menerima nilai yang dikembalikan dari fungsi, kita akan menggunakan variabel integer. Ketika array dikembalikan, kita dapat mengakses nilainya dengan mudah. Nilai akan dicetak secara manual.

Int*penunjuk=fungsi();

Tujuan pointer adalah untuk menemukan item yang ada pada indeks salah satu array. Dengan kata lain, ini menunjukkan alamat nilai dalam array. Kemudian, kami menggunakan prototipe fungsi yang akan mengembalikan pointer.



Untuk melihat output dari array yang dikembalikan melalui fungsi, kita perlu memiliki akses ke terminal Ubuntu dalam kasus Linux. Ini karena output dapat diakses melalui terminal Linux. Di Linux, kita memerlukan kompiler untuk menjalankan kode C++ yang ditulis dalam editor teks apa pun. Kompilasi ini dilakukan melalui G++. The -o digunakan untuk menyimpan output dalam sebuah file. Di sini, kita membutuhkan file output dan file kode sumber. Setelah kompilasi, kami akan mengeksekusi kode:

$g++ -ataufile1 file1.c
$./file1

Dari output, kita dapat melihat array yang diinisialisasi dalam fungsi, ditampilkan di fungsi utama dengan menggunakan array statis, diinisialisasi secara manual dan melalui pointer.

Kembalikan Array yang Dialokasikan Secara Dinamis Menggunakan Pointer

Array dapat dikembalikan dengan menggunakan alokasi dinamis. Array dapat dialokasikan secara dinamis dengan menggunakan kata baru. Mereka akan tetap di sana sampai kami menghapusnya sendiri. Array statis berukuran tetap, yang berarti Anda harus memberikan ukuran selama inisialisasi. Setelah array dibuat, maka sulit untuk menambah ukuran pada saat run time atau selanjutnya. Namun dalam kasus larik dinamis, kita dapat menambahkan lebih banyak item kapan pun kita mau karena item tersebut akan mengembang saat kita memasukkan nilai di dalamnya. Jadi kita tidak perlu menentukan atau mengidentifikasi ukuran apa pun.

Bergerak menuju contoh yang telah kita gunakan di sini. Kami telah menggunakan array dinamis dengan pointer seperti pada contoh sebelumnya, di mana kami telah menggunakan pointer dengan array statis.

Int*fungsi()

Setelah deklarasi fungsi, array dideklarasikan secara dinamis:

Int*Himpunan= baru ke dalam [100];

Istilah, baru, terus-menerus digunakan untuk membuat larik dinamis. Kami akan melakukan operasi pada array dengan memasukkan nilai di dalamnya. Setelah itu, array dikembalikan ke program utama:

Sekarang, perhatikan fungsi utamanya. Kami telah membuat panggilan fungsi. Saat array dikembalikan, kami menambahkan variabel tipe integer pointer untuk menerima nilainya.

Int*penunjuk=fungsi();

Nilai yang disimpan dalam array dicetak secara manual. Outputnya diperoleh melalui metode kompilasi dan eksekusi.

Kembalikan Array Menggunakan Struktur

Struktur adalah wadah seperti array. Tapi array berisi nilai tipe data yang sama pada suatu waktu. Dan dalam kasus struktur, mereka mengandung lebih dari satu nilai tipe data. Kami telah mengambil struktur bernama sampel. Di sini, deklarasi array ada di dalam struktur, bukan fungsi. Tipe pengembalian adalah nama struktur. Variabel struktur dikembalikan ke program utama. Struktur menggunakan kata struct untuk deklarasi.

Contoh struktur
{
Int arr[100];
};

Setelah deklarasi struktur, kami telah menggunakan fungsi di mana objek struktur dibuat. Objek ini akan digunakan untuk mengakses struktur. Fungsi ini akan mengembalikan objek struktur ke fungsi utama sehingga kita dapat mencetak array melalui objek ini. Sebuah variabel akan mendapatkan nilai-nilai dalam variabel tersebut. Nilai ini adalah bilangan bulat yang akan kita masukkan nilai dalam array. Seperti dalam contoh ini, kami telah memilih 6 sebagai nomor. Jadi, angka akan dimasukkan hingga 6 dalam array.

Fungsi sampel struktur(ke dalamn)

Sekarang, bergerak menuju program utama, kami telah membuat objek untuk mengakses array melalui ini:

Contoh struktur x;

Setelah inisialisasi objek, nilai ditambahkan ke variabel hingga angka yang kita inginkan dimasukkan ke dalam array. Dalam panggilan fungsi, kami akan meneruskan nilai dalam parameter:

x=fungsi(n);

Kami akan memiliki tampilan dengan menggunakan for loop. Nilai ditampilkan melalui objek yang dideklarasikan di awal program utama:

Output menunjukkan bahwa 6 nilai ditampilkan dalam hasil karena kami telah memasukkan 6 angka dalam program.

Kembalikan Array Menggunakan Std

C++ menggunakan banyak metode untuk mengembalikan array dari fungsi. Salah satunya adalah melalui std::array. Ini adalah template struktur. Fitur ini juga menyediakan dua fungsi lagi yaitu ukuran () dan kosong (). Nama array dikembalikan yang menunjukkan bahwa seluruh array dikembalikan ke program utama. Di sini, kita akan menambahkan array file header. Selain perpustakaan, ini berisi semua fungsi array.

#termasuk

Himpunan<ke dalam,10>fungsi()

Karena kita dapat mengembalikan seluruh array dengan namanya, maka dalam deklarasi suatu fungsi, kita akan menggunakan array sebagai tipe kembalian. Data dimasukkan ke dalam array. Setelah itu, array akan dikembalikan ke program utama. Bergerak menuju fungsi utama, variabel array akan menerima array ketika fungsi dipanggil.

arr=fungsi();

Sekali lagi, for loop akan digunakan untuk menampilkan nilai array. Kami mengamati output dari gambar yang ditampilkan di bawah ini. Karena kami telah menggunakan 10 ukuran, 0 angka akan dimasukkan. Oleh karena itu, ini ditampilkan:

Kembalikan Array Melalui Wadah Vektor

Pendekatan ini adalah array yang dialokasikan secara dinamis. Seperti dalam kasus ini, tidak perlu menentukan ukuran array. Kami tidak memerlukan parameter ukuran apa pun di sini. Menggunakan contoh ini, kita perlu menambahkan header vektor di perpustakaan yang berisi fungsionalitas vektor.

Beralih ke fungsi, di mana tipe pengembalian juga merupakan vektor int dan juga mengandung penunjuk vektor sebagai argumen dalam parameter. Array dengan nama temp diperkenalkan di sini:

Vektor<ke dalam>MultiplyArrayByTwo(konstanvektor<ke dalam> *arr)

Fungsi ini akan mengalikan elemen array menjadi dua dengan menggunakan fungsi tmp.push_back(). Kemudian, kembalikan tmp. Variabel tipe otomatis akan menerima nilai array dari fungsi. Array berisi item di dalamnya.

Output menunjukkan kerja wadah vektor.

Kesimpulan

Dalam artikel yang disebutkan di atas, kami telah menjelaskan lima metode yang paling umum digunakan untuk menjelaskan fungsionalitas mengembalikan array dari fungsi.