Hvordan Returnere En Matrise

Innholdsfortegnelse:

Hvordan Returnere En Matrise
Hvordan Returnere En Matrise

Video: Hvordan Returnere En Matrise

Video: Hvordan Returnere En Matrise
Video: Hvordan du rer en AeroSleep-seng 2024, Kan
Anonim

Arrays er en av de enkleste formene for strukturert datalagring. Siden udelbare minneområder er tildelt for lagring av endimensjonale matriser, og de fleste programmeringsspråk har syntaktiske konstruksjoner for deres erklæring, blir de intenst brukt som buffere for å overføre store mengder informasjon til forskjellige (inkludert bibliotek) funksjoner. I sin tur må funksjoner noen ganger returnere en matrise.

Hvordan returnere en matrise
Hvordan returnere en matrise

Nødvendig

  • - tekstredigerer;
  • - C eller C ++ kompilator og linker.

Bruksanvisning

Trinn 1

Returner data fra en funksjon eller metode ved å plassere den i en matrise med fast lengde, tildelt av den som ringer, og sendes som referanse. Definer riktig datatype, for eksempel: typedef int t_array10 [10]; Bruk den i erklæringen og implementeringen av den nødvendige funksjonen eller metoden: void ReturnArray (t_array10 & raOut) {raOut [0] = 10;} Ring riktig: int aNumbers [10]; ReturnArray (aNumbers); Ulempen med denne metoden er at lengden på arrayet er fast.

Steg 2

Returner matrisedataene ved å plassere den i en innringerallokert utgangsbuffer som sendes av pekeren. Prototypen til en funksjon eller metode kan inneholde en parameter som er erklært både i arraynotasjon uten størrelsesspesifikasjon: void ReturnArray (int anArray , int nSize); eller som en peker: void ReturnArray (int * pnArray, int nSize); I begge tilfeller kan identifikasjonsparameteren brukes i matriser: void ReturnArray (int * pnArray, int nSize) {for (nSize--; nSize> -1; pnArray [nSize] = nSize--);} // call int aNumbers [10]; ReturnArray (aNumbers, sizeof (aNumbers) / sizeof (aNumbers [0])); Denne metoden for å overføre matriser til funksjoner og returnere array-data fra dem brukes i det overveldende flertallet av tilfellene når du utvikler C-programmer. Merk at funksjoner og metoder som aksepterer og returnerer data på denne måten, som regel, må ha en ekstra parameter som den faktiske størrelsen på bufferen sendes gjennom.

Trinn 3

Returner en matrise opprettet i en funksjon eller metode. Formelt sett, i dette tilfellet, skal ikke en matrise returneres, men en peker til det første elementet: int * ReturnArray () {int * pnArray = new int [10]; // arbeid med pnArray return pnArray;} // få en peker til den opprettede matrisen int * pnNumbers = ReturnArray (); // bruk delete pnNumbers; // delete Denne metoden har noen begrensninger. Så matrisen må være plassert i haug. I tillegg må sletting gjøres med metoden som tilsvarer opprettelsen (slett i tilfelle du bruker nytt, gratis for malloc, etc.).

Trinn 4

Bruk beholderklasser til å enkelt levere matriser når du utvikler C ++ - programmer. Et eksempel på å opprette og returnere en matrise som er et objekt i vektormallklassen i C ++ Standardmalbibliotek spesifisert for int, kan se slik ut: #include std:: vector ReturnArray () {std:: vector oArray; oArray.resize (10); oArray [0] = 100; oArray [1] = 200; return oArray;} std:: vector oArray = ReturnArray (); Vær oppmerksom på at de fleste av de populære rammene gir kraftige klasser eller matrixklasmaler. De implementerer ofte konseptet med implisitt datadeling med referansetelling og copy-on-write. Derfor blir retur av verdi av slike matriser fra funksjoner utført veldig effektivt og er forbundet med et minimum forbruk av databehandlingsressurser.

Anbefalt: