Susunan adalah salah satu bentuk penyimpanan data berstruktur paling mudah. Oleh kerana kawasan memori yang tidak dapat dibahagi diperuntukkan untuk menyimpan tatasusunan satu dimensi, dan kebanyakan bahasa pengaturcaraan mempunyai konstruksi sintaksis untuk pengisytiharannya, mereka digunakan secara intensif sebagai penyangga untuk memindahkan sejumlah besar maklumat ke pelbagai fungsi (termasuk perpustakaan). Sebaliknya, fungsi kadang-kadang perlu mengembalikan array.
Perlu
- - penyunting teks;
- - Penyusun dan penghubung C atau C ++.
Arahan
Langkah 1
Kembalikan data dari fungsi atau kaedah dengan meletakkannya dalam susunan panjang tetap, yang diperuntukkan oleh pemanggil, dan diserahkan dengan rujukan. Tentukan jenis data yang sesuai, contohnya: typedef int t_array10 [10]; Gunakannya dalam deklarasi dan pelaksanaan fungsi atau kaedah yang diperlukan: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Panggilan dengan tepat: int aNumbers [10]; ReturnArray (aNumbers); Kelemahan kaedah ini ialah panjang array tetap.
Langkah 2
Kembalikan data array dengan meletakkannya dalam buffer output yang dialokasikan oleh pemanggil yang dilalui oleh penunjuk. Prototaip fungsi atau kaedah dapat berisi parameter yang dinyatakan baik dalam notasi array tanpa spesifikasi ukuran: void ReturnArray (int anArray , int nSize); atau sebagai penunjuk: void ReturnArray (int * pnArray, int nSize); Dalam kedua kes, parameter pengenal boleh digunakan dalam tatatanda array: void ReturnArray (int * pnArray, int nSize) {untuk (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Kaedah ini untuk menyampaikan array ke fungsi dan mengembalikan data array dari mereka digunakan dalam sebilangan besar kes semasa mengembangkan program C. Perhatikan bahawa fungsi dan kaedah yang menerima dan mengembalikan data dengan cara ini, sebagai peraturan, mesti mempunyai parameter tambahan yang melaluinya ukuran penyangga sebenarnya.
Langkah 3
Kembalikan array yang dibuat dalam fungsi atau kaedah. Secara rasmi, dalam kes ini, bukan array harus dikembalikan, tetapi penunjuk ke elemen pertamanya: int * ReturnArray () {int * pnArray = int baru [10]; // bekerjasama dengan pnArray return pnArray;} // dapatkan pointer ke array yang dibuat int * pnNumbers = ReturnArray (); // gunakan delete pnNumbers; // delete Kaedah ini mempunyai beberapa batasan. Jadi, susunan mesti terletak di timbunan. Di samping itu, penghapusannya mesti dilakukan dengan kaedah yang sesuai dengan penciptaan (hapus sekiranya menggunakan yang baru, percuma untuk malloc, dll.).
Langkah 4
Gunakan kelas kontena untuk mengembalikan tatasusunan dengan mudah semasa mengembangkan program C ++. Contoh membuat dan mengembalikan array yang merupakan objek kelas templat vektor Perpustakaan Templat Piawai C ++ yang ditentukan untuk int mungkin kelihatan seperti ini: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Perhatikan bahawa kebanyakan kerangka kerja yang popular menyediakan kelas atau templat kelas yang kuat. Mereka sering menerapkan konsep perkongsian data tersirat dengan penghitungan rujukan dan copy-on-write. Oleh itu, mengembalikan nilai susunan sedemikian dari fungsi dilakukan dengan sangat cekap dan dikaitkan dengan penggunaan sumber pengkomputeran minimum.