Hur Man Returnerar En Matris

Innehållsförteckning:

Hur Man Returnerar En Matris
Hur Man Returnerar En Matris

Video: Hur Man Returnerar En Matris

Video: Hur Man Returnerar En Matris
Video: BON'A PARTE Returguide (SE) 2024, November
Anonim

Arrays är en av de enklaste formerna av strukturerad datalagring. Eftersom odelbara minnesområden allokeras för lagring av endimensionella matriser, och de flesta programmeringsspråk har syntaktiska konstruktioner för att deklarera, används de intensivt som buffertar för att överföra stora mängder information till olika (inklusive bibliotek) funktioner. I sin tur måste funktioner ibland returnera en matris.

Hur man returnerar en matris
Hur man returnerar en matris

Nödvändig

  • - textredigerare;
  • - C eller C ++ kompilator och länkare.

Instruktioner

Steg 1

Returnera data från en funktion eller metod genom att placera den i en grupp med fast längd, tilldelad av den som ringer och skickas som referens. Definiera lämplig datatyp, till exempel: typedef int t_array10 [10]; Använd den i deklarationen och implementeringen av den önskade funktionen eller metoden: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Ring lämpligt: int aNumbers [10]; ReturnArray (aNumbers); Nackdelen med denna metod är att arrayens längd är fixerad.

Steg 2

Returnera arraydata genom att placera den i en uppringningsallokerad utgångsbuffert som skickas av pekaren. Prototypen för en funktion eller metod kan innehålla en parameter som deklareras både i arraynotation utan storleksspecifikation: void ReturnArray (int anArray , int nSize); eller som en pekare: void ReturnArray (int * pnArray, int nSize); I båda fall kan identifieringsparametern användas i arraynotation: void ReturnArray (int * pnArray, int nSize) {för (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Denna metod för att skicka matriser till funktioner och returnera arraydata från dem används i överväldigande majoritet av fallen när C-program utvecklas. Observera att funktioner och metoder som accepterar och returnerar data på detta sätt måste som regel ha en ytterligare parameter genom vilken buffertens faktiska storlek skickas.

Steg 3

Returnera en array skapad i en funktion eller metod. I det här fallet ska formellt inte en matris returneras utan en pekare till dess första element: int * ReturnArray () {int * pnArray = new int [10]; // arbeta med pnArray return pnArray;} // få en pekare till den skapade matrisen int * pnNumbers = ReturnArray (); // använd delete pnNumbers; // delete Denna metod har vissa begränsningar. Så matrisen måste placeras i hög. Dessutom måste dess radering göras med metoden som motsvarar skapandet (ta bort om du använder nytt, gratis för malloc, etc.).

Steg 4

Använd behållarklasser för att enkelt returnera matriser när du utvecklar C ++ - program. Ett exempel på att skapa och returnera en matris som är ett objekt för vektormallklassen i C ++ Standardmallbiblioteket som anges för int kan se ut så här: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Observera att de flesta av de populära ramarna har kraftfulla klasser eller arrayklassmallar. De implementerar ofta konceptet med implicit datadelning med referensräkning och copy-on-write. Därför utförs återföring av värdet av sådana matriser från funktioner mycket effektivt och associeras med en minsta förbrukning av datorresurser.

Rekommenderad: