Return Array Dari Fungsi C ++

Return Array From Function C



Susunan adalah bekas khas yang mempunyai nilai dari jenis data yang sama. Fungsi dalam C ++ melakukan operasi pada tatasusunan, dan susunan ini kemudian dikembalikan ke fungsi utama. Terdapat banyak pendekatan untuk menggambarkan fenomena ini. Dalam panduan ini, beberapa kaedah biasa dijelaskan:

Gunakan Penunjuk untuk Mengembalikan Array Statik

Apabila kita menggunakan susunan normal, ada kemungkinan hasil semacam tidak normal. Untuk mengelakkan ini, kami menggunakan susunan statik dalam kod C ++ kami. Marilah kita memahami contoh yang telah kita gunakan. Dalam fungsi ini, kami telah menyatakan array dengan 5 nilai jenis pengembalian seperti yang disebutkan di sini.







Fungsi Int * ()



Oleh kerana nilainya akan menjadi jenis bilangan bulat, maka ia ditandai sebagai int pada contoh di bawah. Karena kami telah memperkenalkan fungsi sebagai penunjuk, fungsi tersebut akan menjadi jenis penunjuk. 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 pembolehubah integer. Apabila array dikembalikan, kita dapat mengakses nilainya dengan mudah. Nilai akan dicetak secara manual.

Int*penunjuk=fungsi();

Tujuan penunjuk adalah untuk mencari item yang terdapat di indeks salah satu array. Dengan kata lain, ia menunjukkan alamat nilai dalam tatasusunan. Kemudian, kami menggunakan prototaip fungsi yang akan mengembalikan penunjuk.



Untuk melihat output array yang dikembalikan melalui fungsi, kita perlu mempunyai akses ke terminal Ubuntu untuk Linux. Ini disebabkan output dapat diakses melalui terminal Linux. Di Linux, kita memerlukan penyusun untuk menjalankan kod C ++ yang ditulis di mana-mana penyunting teks. Penyusunan ini dilakukan melalui G ++. The -o digunakan untuk menyimpan output dalam fail. Di sini, kita memerlukan fail output dan fail kod sumber. Selepas penyusunan, kami akan melaksanakan kod:

$g ++ -ataufail1 fail1.c
$./fail1

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

Kembalikan Array yang Diagihkan Secara Dinamik Menggunakan Penunjuk

Susunan dapat dikembalikan dengan menggunakan peruntukan dinamik. Susunan dapat dialokasikan secara dinamik dengan menggunakan kata baru. Mereka akan kekal di sana sehingga kami menghapusnya sendiri. Susunan statik tetap dalam ukuran, yang bermaksud anda harus memberikan ukuran semasa inisialisasi. Setelah susunan dibuat, maka sukar untuk meningkatkan ukuran pada waktu berjalan atau akhirat. Tetapi dalam kes array dinamik, kita dapat menambahkan lebih banyak item kapan pun kita mahu kerana ia berkembang ketika kita memasukkan nilai di dalamnya. Oleh itu, kita tidak perlu menentukan atau mengenal pasti ukuran apa pun.

Melangkah ke arah contoh yang telah kita gunakan di sini. Kami telah menggunakan array dinamik dengan penunjuk seperti contoh sebelumnya, di mana kami telah menggunakan penunjuk dengan tatasusunan statik.

Int*fungsi()

Selepas pengisytiharan fungsi, susunan dinyatakan secara dinamik:

Int*susunan= baru int [100];

Istilah, baru, selalu digunakan untuk membuat susunan dinamik. Kami akan melakukan operasi pada array dengan memasukkan nilai di dalamnya. Selepas itu, susunan dikembalikan ke program utama:

Sekarang, pertimbangkan fungsi utama. Kami telah membuat panggilan fungsi. Semasa array dikembalikan, kami menambah pemboleh ubah jenis integer penunjuk untuk menerima nilainya.

Int*penunjuk=fungsi();

Nilai yang disimpan dalam array dicetak secara manual. Hasilnya diperoleh melalui kaedah penyusunan dan pelaksanaan.

Return Array Menggunakan Struktur

Struktur adalah bekas seperti tatasusunan. Tetapi array mengandungi nilai jenis data yang sama pada satu masa. Dan untuk struktur, struktur tersebut mengandungi lebih daripada satu nilai jenis data. Kami telah mengambil struktur bernama sampel. Di sini, deklarasi array berada di dalam struktur dan bukannya fungsi. Jenis pengembalian adalah nama struktur. Pemboleh ubah struktur dikembalikan ke program utama. Struktur menggunakan perkataan 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. Pemboleh ubah akan mendapat nilai dalam pemboleh ubah. Nilai ini adalah nombor bulat sehingga kita akan memasukkan nilai dalam array. Seperti dalam contoh ini, kita telah memilih 6 sebagai nombor. Jadi, nombor akan dimasukkan hingga 6 dalam array.

Fungsi sampel struktur(intn)

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

Contoh struktur x;

Setelah inisialisasi objek, nilai ditambahkan ke pemboleh ubah sehingga kita ingin nombor dimasukkan dalam array. Dalam panggilan fungsi, kita akan meneruskan nilai dalam parameter:

X=fungsi(n);

Kami akan mempunyai paparan dengan menggunakan loop untuk. Nilai ditunjukkan melalui objek yang dinyatakan pada permulaan program utama:

Hasilnya menunjukkan bahawa 6 nilai ditunjukkan dalam hasilnya kerana kami telah memasukkan 6 nombor dalam program ini.

Return Array Menggunakan Std

C ++ menggunakan banyak kaedah untuk mengembalikan array dari fungsi. Salah satunya adalah melalui std :: array. Ini adalah templat struktur. Ciri ini juga menyediakan dua fungsi lagi iaitu ukuran () dan kosong (). Nama array dikembalikan yang menunjukkan bahawa keseluruhan array dikembalikan ke program utama. Di sini, kami akan menambahkan array fail header. Selain perpustakaan, ini berisi semua fungsi array.

#sertakan

susunan<int,10>fungsi()

Oleh kerana kita dapat mengembalikan keseluruhan array dengan namanya, jadi dalam deklarasi fungsi, kita akan menggunakan array sebagai jenis pengembalian. Data dimasukkan dalam tatasusunan. Selepas itu, susunan akan dikembalikan ke program utama. Bergerak ke arah fungsi utama, pemboleh ubah array akan menerima array ketika fungsi dipanggil.

arr=fungsi();

Sekali lagi, untuk gelung akan digunakan untuk memaparkan nilai array. Kami memerhatikan output dari gambar yang ditunjukkan di bawah. Oleh kerana kami telah menggunakan 10 ukuran, 0 nombor akan dimasukkan. Oleh itu, ini dipaparkan:

Kembalikan Array Melalui Bekas Vektor

Pendekatan ini adalah susunan yang diperuntukkan secara dinamik. Seperti dalam kes ini, tidak perlu menentukan ukuran array. Kami tidak memerlukan parameter ukuran di sini. Dengan menggunakan contoh ini, kita perlu menambahkan header vektor di perpustakaan yang mengandungi fungsi vektor.

Bergerak ke arah fungsi, di mana jenis pengembalian juga merupakan vektor int dan juga berisi penunjuk vektor sebagai argumen dalam parameter. Array dengan nama temp diperkenalkan di sini:

Vektor<int>GandakanArrayByTwo(penyambungvektor<int> *arr)

Fungsi akan menggandakan elemen array dengan dua melalui menggunakan fungsi tmp.push_back (). Kemudian, kembalikan tmp. Pemboleh ubah jenis automatik akan menerima nilai array dari fungsi. Susunan mengandungi item di dalamnya.

Output menunjukkan kerja bekas vektor.

Kesimpulannya

Dalam artikel yang disebutkan di atas, kami telah menerangkan lima kaedah yang paling sering digunakan untuk menjelaskan fungsi mengembalikan array dari fungsi tersebut.