Hoe Om 'n Skikking Terug Te Gee

INHOUDSOPGAWE:

Hoe Om 'n Skikking Terug Te Gee
Hoe Om 'n Skikking Terug Te Gee

Video: Hoe Om 'n Skikking Terug Te Gee

Video: Hoe Om 'n Skikking Terug Te Gee
Video: Mijn eerste keer dat ik diskette in onze NIEUWE TRACTOR!!! 2024, November
Anonim

Skikkings is een van die eenvoudigste vorms van gestruktureerde stoor van data. Aangesien ondeelbare geheue-areas toegeken word vir die berging van eendimensionele skikkings, en die meeste programmeertale sintaktiese konstruksies het om dit te verklaar, word dit intensief gebruik as buffers vir die oordrag van groot hoeveelhede inligting na verskillende funksies (insluitend biblioteekfunksies). Op hul beurt moet funksies soms 'n skikking weergee.

Hoe om 'n skikking terug te gee
Hoe om 'n skikking terug te gee

Nodig

  • - teksredigeerder;
  • - C of C ++ samesteller en skakel.

Instruksies

Stap 1

Gee data van 'n funksie of metode terug deur dit in 'n vaste skikking te plaas, toegeken deur die oproeper en deur te stuur as verwysing. Definieer die toepaslike datatipe, byvoorbeeld: typedef int t_array10 [10]; gebruik dit in die verklaring en implementering van die vereiste funksie of metode: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Bel toepaslik: int aNumbers [10]; ReturnArray (aNumbers); Die nadeel van hierdie metode is dat die lengte van die array vasgestel is.

Stap 2

Stuur die skikkinggegewens terug deur dit in 'n oproeper-toegewese uitvoerbuffer te plaas wat deur die wyser gestuur word. Die prototipe van 'n funksie of metode kan 'n parameter bevat wat beide in skikkingnotasie verklaar word sonder grootte spesifikasie: void ReturnArray (int anArray , int nSize); of as 'n wyser: void ReturnArray (int * pnArray, int nSize); gevalle, kan die identifiseerderparameter in skikkingnotasie gebruik word: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Hierdie metode om skikkings na funksies deur te gee en skikkingdata daaruit terug te gee, word in die oorgrote meerderheid van die gevalle gebruik wanneer C-programme ontwikkel word. funksies en metodes wat data op hierdie manier aanvaar en terugstuur, moet as 'n reël 'n addisionele parameter hê waardeur die werklike grootte van die buffer oorgedra word.

Stap 3

Stuur 'n skikking terug wat in 'n funksie of metode geskep is. Formeel moet in hierdie geval nie 'n skikking teruggestuur word nie, maar 'n wyser na die eerste element: int * ReturnArray () {int * pnArray = new int [10]; // werk met pnArray-terugkeer pnArray;} // kry 'n wyser na die geskepte skikking int * pnNumbers = ReturnArray (); // gebruik delete pnNumbers; // delete Hierdie metode het beperkings. Die skikking moet dus in 'n hoop geleë wees. Daarbenewens moet die verwydering daarvan geskied met die metode wat ooreenstem met die skepping (skrap in die geval van die gebruik van nuwe, gratis vir malloc, ens.).

Stap 4

Gebruik houerklasse om skikkings maklik terug te gee wanneer u C ++ - programme ontwikkel. 'N Voorbeeld van die skep en terugstuur van 'n skikking wat 'n voorwerp is van die vektorsjabloonklas van die C ++ standaard sjabloonbiblioteek wat vir int gespesifiseer is, kan so lyk: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; retour oArray;} std:: vector oArray = ReturnArray (); Let daarop dat die meeste van die gewilde raamwerke kragtige klasse of skikkingsklas-templates bied. Hulle implementeer dikwels die konsep van implisiete datadeling met verwysingstelling en kopie-op-skryf. Daarom word die terugkeer volgens die waarde van sulke skikkings vanaf funksies baie doeltreffend uitgevoer en dit hou verband met 'n minimum verbruik van rekenaarbronne.

Aanbeveel: