Com Es Torna Una Matriu

Taula de continguts:

Com Es Torna Una Matriu
Com Es Torna Una Matriu
Anonim

Les matrius són una de les formes d’emmagatzematge de dades estructurades més senzilles. Atès que les àrees de memòria indivisibles s’assignen per emmagatzemar matrius unidimensionals i la majoria de llenguatges de programació tenen construccions sintàctiques per a la seva declaració, s’utilitzen intensament com a memòria intermèdia per transferir grans quantitats d’informació a diverses funcions (inclosa la biblioteca). Al seu torn, les funcions de vegades necessiten retornar una matriu.

Com es torna una matriu
Com es torna una matriu

Necessari

  • - editor de text;
  • - Compilador i enllaçador C o C ++.

Instruccions

Pas 1

Torneu les dades d'una funció o mètode col·locant-les en una matriu de longitud fixa, assignades per la persona que truca i passades per referència. Definiu el tipus de dades adequat, per exemple: typedef int t_array10 [10]; Utilitzeu-lo a la declaració i implementació de la funció o mètode requerit: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Truqueu adequadament: int aNumbers [10]; ReturnArray (aNumbers); L'inconvenient d'aquest mètode és que la longitud de la matriu és fixa.

Pas 2

Torneu les dades de la matriu col·locant-les en una memòria intermèdia de sortida assignada per la persona que truca passant pel punter. El prototip d'una funció o mètode pot contenir un paràmetre declarat tant en notació de matriu sense especificació de mida: void ReturnArray (int anArray , int nSize); o com a punter: void ReturnArray (int * pnArray, int nSize); casos, el paràmetre identificador es pot utilitzar en la notació de matriu: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Aquest mètode per passar matrius a funcions i retornar-ne les dades de matriu s’utilitza en la immensa majoria dels casos quan es desenvolupen programes C. Tingueu en compte que les funcions i mètodes que accepten i retornen dades d'aquesta manera, per regla general, han de tenir un paràmetre addicional a través del qual es passi la mida real del buffer.

Pas 3

Retorna una matriu creada en una funció o mètode. Formalment, en aquest cas, no s'hauria de retornar una matriu, sinó un punter al seu primer element: int * ReturnArray () {int * pnArray = new int [10]; // treballar amb pnArray return pnArray;} // obtenir un punter a la matriu creada int * pnNumbers = ReturnArray (); // use delete pnNumbers; // esborra Aquest mètode té algunes limitacions. Per tant, la matriu s’ha de situar en un munt. A més, la seva eliminació s’ha de fer amb el mètode corresponent a la creació (suprimir en el cas d’utilitzar new, free for malloc, etc.).

Pas 4

Utilitzeu classes de contenidors per retornar convenientment matrius quan desenvolupeu programes C ++. Un exemple de creació i devolució d'una matriu que sigui un objecte de la classe de plantilla vectorial de la Biblioteca de plantilles estàndard C ++ especificada per int podria ser així: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Tingueu en compte que la majoria dels marcs populars ofereixen classes potents o plantilles de classes de matriu. Sovint implementen el concepte de compartició de dades implícita amb el recompte de referències i la còpia en escriptura. Per tant, el retorn per valor d’aquestes matrius de les funcions es realitza de manera molt eficient i s’associa amb un consum mínim de recursos informàtics.

Recomanat: