Sådan Returneres En Matrix

Indholdsfortegnelse:

Sådan Returneres En Matrix
Sådan Returneres En Matrix

Video: Sådan Returneres En Matrix

Video: Sådan Returneres En Matrix
Video: Окончание матричной трилогии наконец объяснено 2024, Kan
Anonim

Arrays er en af de enkleste former for struktureret datalagring. Da udelelige hukommelsesområder tildeles til lagring af endimensionelle arrays, og de fleste programmeringssprog har syntaktiske konstruktioner til deres erklæring, bruges de intensivt som buffere til overførsel af store mængder information til forskellige (inklusive biblioteksfunktioner). Til gengæld skal funktioner nogle gange returnere en matrix.

Sådan returneres en matrix
Sådan returneres en matrix

Nødvendig

  • - teksteditor;
  • - C eller C ++ compiler og linker.

Instruktioner

Trin 1

Returner data fra en funktion eller metode ved at placere dem i et array med fast længde, tildelt af den, der ringer op, og videregivet som reference. Definer den relevante datatype, for eksempel: typedef int t_array10 [10]; Brug den i erklæringen og implementeringen af den krævede funktion eller metode: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Ring passende: int aNumbers [10]; ReturnArray (aNumbers); Ulempen ved denne metode er, at arrayets længde er fast.

Trin 2

Returner matrixdataene ved at placere dem i en opkaldstildelt outputbuffer, der sendes af markøren. Prototypen for en funktion eller metode kan indeholde en parameter, der er erklæret både i array-notation uden størrelsesspecifikation: void ReturnArray (int anArray , int nSize) eller som en markør: void ReturnArray (int * pnArray, int nSize); I begge tilfælde kan identifikatorparameteren bruges i matrixnotation: ugyldigt ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Denne metode til overføring af arrays til funktioner og returnering af array-data fra dem bruges i det overvældende flertal af tilfælde, når du udvikler C-programmer. funktioner og metoder, der accepterer og returnerer data på denne måde, skal som regel have en yderligere parameter, gennem hvilken den faktiske størrelse af bufferen sendes.

Trin 3

Returner en matrix oprettet i en funktion eller metode. Formelt set skal i dette tilfælde ikke en matrix returneres, men en markør til dens første element: int * ReturnArray () {int * pnArray = new int [10]; // arbejde med pnArray return pnArray;} // få en markør til det oprettede array int * pnNumbers = ReturnArray (); // brug delete pnNumbers; // delete Denne metode har nogle begrænsninger. Så arrayet skal være placeret i dyngen. Derudover skal sletningen ske med den metode, der svarer til oprettelsen (slet i tilfælde af brug af nyt, gratis til malloc osv.).

Trin 4

Brug containerklasser til bekvemt at returnere arrays, når du udvikler C ++ - programmer. Et eksempel på at oprette og returnere en matrix, der er et objekt i vektormaskabelonen i C ++ standardskabelonbiblioteket, der er angivet til int, kan se sådan ud: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; returner oArray;} std:: vector oArray = ReturnArray (); Bemærk, at de fleste af de populære rammer giver kraftige klasser eller array-klasseskabeloner. De implementerer ofte konceptet med implicit datadeling med referenceoptælling og copy-on-write. Derfor udføres returnering efter værdi af sådanne arrays fra funktioner meget effektivt og er forbundet med et minimalt forbrug af computerressourcer.

Anbefalede: