Kako Vrniti Matriko

Kazalo:

Kako Vrniti Matriko
Kako Vrniti Matriko

Video: Kako Vrniti Matriko

Video: Kako Vrniti Matriko
Video: Про бизнес, деньги и возможности 2024, November
Anonim

Polja so ena najpreprostejših oblik strukturiranega shranjevanja podatkov. Ker so nedeljiva področja pomnilnika dodeljena za shranjevanje enodimenzionalnih nizov in ima večina programskih jezikov skladenjske konstrukcije za njihovo deklariranje, se intenzivno uporabljajo kot vmesni pomnilniki za prenos velikih količin informacij v različne (vključno s knjižnicami) funkcije. Funkcije pa morajo včasih vrniti matriko.

Kako vrniti matriko
Kako vrniti matriko

Potrebno

  • - urejevalnik besedil;
  • - Prevajalnik in povezovalnik C ali C ++.

Navodila

Korak 1

Vrni podatke iz funkcije ali metode tako, da jih postavi v matriko s fiksno dolžino, ki jo dodeli klicatelj in posreduje po sklicu. Določite ustrezen podatkovni tip, na primer: typedef int t_array10 [10]; Uporabite ga pri deklaraciji in izvedbi zahtevane funkcije ali metode: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Ustrezno pokličite: int aNumbers [10]; ReturnArray (aNumbers); Pomanjkljivost te metode je, da je dolžina matrike fiksna.

2. korak

Vrnite podatke matrike tako, da jih postavite v izhodni vmesni pomnilnik, ki ga dodeli klicatelj, ki ga posreduje kazalec. Prototip funkcije ali metode lahko vsebuje parameter, deklariran v zapisu matrike brez navedbe velikosti: void ReturnArray (int anArray , int nSize); ali kot kazalec: void ReturnArray (int * pnArray, int nSize); primerih je mogoče identifikacijski parameter uporabiti v zapisu matrike: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // pokliči int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Ta način posredovanja nizov funkcijam in vrnitev podatkov o njih iz njih se uporablja v veliki večini primerov pri razvoju programov C. Upoštevajte, da funkcije in metode, ki na ta način sprejemajo in vračajo podatke, morajo praviloma imeti dodaten parameter, skozi katerega se prenese dejanska velikost vmesnega pomnilnika.

3. korak

Vrne matriko, ustvarjeno v funkciji ali metodi. Formalno v tem primeru ni treba vrniti matrike, temveč kazalec na njen prvi element: int * ReturnArray () {int * pnArray = new int [10]; // delamo s pnArray return pnArray;} // dobimo kazalec na ustvarjeno matriko int * pnNumbers = ReturnArray (); // uporabimo delete pnNumbers; // brisanje Ta metoda ima nekatere omejitve. Torej, matrika mora biti na kupu. Poleg tega je treba njegovo brisanje opraviti z metodo, ki ustreza ustvarjanju (izbrisati v primeru uporabe novega, brezplačnega za malloc itd.).

4. korak

Pri razvijanju programov C ++ uporabite razrede vsebnikov za priročno vrnitev nizov. Primer ustvarjanja in vrnitve polja, ki je predmet razreda vektorske predloge knjižnice standardnih predlog C ++, določene za int, bi lahko bil videti tako: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; vrni oArray;} std:: vector oArray = ReturnArray (); Upoštevajte, da večina priljubljenih okvirov ponuja zmogljive razrede ali predloge razredov matrike. Pogosto izvajajo koncept implicitne izmenjave podatkov s štetjem referenc in kopiranjem na zapis. Zato se vračanje po vrednosti takih nizov iz funkcij izvaja zelo učinkovito in je povezano z minimalno porabo računalniških virov.

Priporočena: