Vargjet janë një nga format më të thjeshta të ruajtjes së strukturuar të të dhënave. Meqenëse zonat e pandara të kujtesës janë caktuar për ruajtjen e vargjeve një-dimensionale, dhe shumica e gjuhëve të programimit kanë konstrukte sintaksore për deklarimin e tyre, ato përdoren intensivisht si buffer për transferimin e sasive të mëdha të informacionit në funksione të ndryshme (përfshirë bibliotekën). Nga ana tjetër, funksionet ndonjëherë kanë nevojë për të kthyer një koleksion.
E nevojshme
- - redaktues teksti;
- - Përpiluesi dhe lidhësi i C ose C ++.
Udhëzimet
Hapi 1
Ktheni të dhënat nga një funksion ose metodë duke i vendosur ato në një grup me gjatësi fikse, të alokuar nga thirrësi dhe të kaluara nga referenca. Përcaktoni llojin e duhur të të dhënave, për shembull: typedef int t_array10 [10]; Përdoreni atë në deklarimin dhe zbatimin e funksionit ose metodës së kërkuar: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Telefononi në mënyrë të përshtatshme: int aNumrat [10]; ReturnArray (aNumrat); Disavantazhi i kësaj metode është se gjatësia e vargut është fikse.
Hapi 2
Ktheni të dhënat e vargut duke i vendosur ato në një buffer dalje të alokuar nga thirrësi të kaluar nga treguesi. Prototipi i një funksioni ose metode mund të përmbajë një parametër të deklaruar si në shënimin e vargut pa specifikimin e madhësisë: void ReturnArray (int anArray , int nSize); ose si tregues: void ReturnArray (int * pnArray, int nSize); Në të dy raste, parametri identifikues mund të përdoret në shënimin e vargut: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // thirrni int numrat [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Kjo metodë e kalimit të vargjeve në funksione dhe kthimit të të dhënave të vargjeve prej tyre përdoret në shumicën dërrmuese të rasteve kur zhvilloni programe C. funksionet dhe metodat që pranojnë dhe kthejnë të dhëna në këtë mënyrë, si rregull, duhet të kenë një parametër shtesë përmes të cilit kalohet madhësia aktuale e buffer-it.
Hapi 3
Ktheni një grup të krijuar në një funksion ose metodë. Formalisht, në këtë rast, jo një koleksion duhet të kthehet, por një tregues në elementin e tij të parë: int * ReturnArray () {int * pnArray = int i ri [10]; // punoni me kthimin pnArray pnArray;} // merrni një tregues në grupin e krijuar int * pnNumbers = ReturnArray (); // përdorni fshini pnNumrat; // fshini Kjo metodë ka disa kufizime. Pra, vargu duhet të jetë i vendosur në grumbull. Përveç kësaj, fshirja e tij duhet të bëhet me metodën që korrespondon me krijimin (fshini në rastin e përdorimit të ri, falas për malloc, etj.).
Hapi 4
Përdorni klasat e kontejnerëve për të kthyer me lehtësi vargjet kur zhvilloni programe C ++. Një shembull i krijimit dhe kthimit të një grupi që është një objekt i klasës modeli vektorial të Bibliotekës Standarde të Standardeve C ++ të specifikuar për int mund të duket kështu: #include std:: vector ReturnArray () {std:: vektor oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vektor oArray = ReturnArray (); Vini re se shumica e kornizave të njohura ofrojnë klasa të fuqishme ose shabllone të klasave të vargjeve. Ata shpesh zbatojnë konceptin e ndarjes së të dhënave të nënkuptuar me numërimin e referencave dhe kopjimin në shkrim. Prandaj, kthimi me vlerë i vargjeve të tilla nga funksionet kryhet në mënyrë shumë efikase dhe shoqërohet me një konsum minimal të burimeve kompjuterike.