Returoppsett fra funksjon C ++

Return Array From Function C



Matriser er spesifikke beholdere som har verdier av samme datatype. Funksjoner i C ++ utfører operasjoner på matriser, og disse matrisene returneres deretter til hovedfunksjonen. Det er mange tilnærminger for å beskrive dette fenomenet. I denne veiledningen forklares noen vanlige metoder:

Bruk pekere for å returnere den statiske matrisen

Når vi bruker en normal matrise, er det sjanser for å ha noen form for unormale resultater. For å unngå dette bruker vi en statisk matrise i vår C ++ - kode. La oss forstå eksemplet vi har brukt. I denne funksjonen har vi erklært en matrise med 5 verdier returtypen som nevnt her.







Int *-funksjon ()



Siden verdien vil være en heltallstype, er den merket som int i eksempelet nedenfor. Siden vi har introdusert funksjonen som en peker, vil funksjonen være en pekertype. Etter at verdiene er angitt, returneres en matrise til hovedprogrammet.







I hovedprogrammet har vi foretatt en funksjonskall. For å godta verdien som returneres fra funksjonen, bruker vi en heltallsvariabel. Når matrisen returneres, kan vi enkelt få tilgang til dens verdier. Verdiene skrives ut manuelt.

Int*pekeren=funksjon();

Formålet med pekeren er å finne elementet som er tilstede på indeks en av matrisen. Med andre ord viser den adressen til verdien i matrisen. Deretter bruker vi en funksjonsprototype som returnerer pekeren.



For å se utdataene fra matrisen som returneres gjennom funksjonen, må vi ha tilgang til Ubuntu -terminalen når det gjelder Linux. Dette skyldes at utgangen er tilgjengelig via Linux -terminalen. I Linux trenger vi en kompilator for å kjøre C ++ - koder skrevet i en hvilken som helst tekstredigerer. Denne samlingen gjøres gjennom G ++. -O brukes til å lagre utdataene i en fil. Her trenger vi utdatafilen og kildekodefilen. Etter kompilering vil vi utføre koden:

$g ++ -ellerfile1 file1.c
$./fil 1

Fra utgangen kan vi se matrisen, som ble initialisert i funksjonen, vises i hovedfunksjonen ved å bruke en statisk matrise, initialisert manuelt og gjennom pekene.

Returner dynamisk allokert matrise ved hjelp av pekere

Arrays kan returneres ved bruk av dynamisk tildeling. Matriser kan tildeles dynamisk ved å bruke ordet nytt. De vil forbli der til vi sletter dem selv. Statiske matriser er faste i størrelse, noe som betyr at du må oppgi størrelse under initialisering. Når matrisen er opprettet, er det vanskelig å øke størrelsen ved kjøretid eller senere. Men når det gjelder den dynamiske matrisen, kan vi legge til flere elementer når vi vil, fordi det utvides når vi legger inn verdier i det. Så vi trenger ikke å spesifisere eller identifisere noen størrelse.

Gå mot eksemplet vi har brukt her. Vi har brukt et dynamisk array med pekerne som i de foregående eksemplene, der vi har brukt pekere med de statiske matrisene.

Int*funksjon()

Etter funksjonserklæring deklareres matriser dynamisk:

Int*matrise= ny int [100];

Begrepet nytt, blir stadig brukt for å lage et dynamisk utvalg. Vi vil utføre operasjoner på matrisen ved å skrive inn verdier i den. Etter det returneres matrisen til hovedprogrammet:

Vurder nå hovedfunksjonen. Vi har ringt funksjonen. Når matrisen returneres, legger vi til en pekers heltallstypevariabel for å godta verdien.

Int*pekeren=funksjon();

Verdiene som ble lagret i matrisen skrives ut manuelt. Utdataene oppnås gjennom kompilerings- og utførelsesmetoden.

Returoppsett ved bruk av strukturene

Strukturer er beholderne som matriser. Men array inneholder verdien av samme datatype om gangen. Og når det gjelder strukturer, inneholder de mer enn én datatypeverdi. Vi har tatt en struktur som heter sample. Her er matrisedeklarasjonen inne i strukturene i stedet for funksjoner. Returtypen er navnet på strukturen. Strukturvariabelen returneres til hovedprogrammet. Strukturen bruker ordet struct for deklarasjon.

Strukturprøve
{
Int arr[100];
};

Etter strukturerklæringen har vi brukt en funksjon der et objekt av struktur blir opprettet. Dette objektet vil bli brukt for å få tilgang til strukturen. Denne funksjonen vil returnere objektet til strukturen til hovedfunksjonen slik at vi kan skrive ut matrisen gjennom dette objektet. En variabel vil få verdiene i variabelen. Denne verdien er heltall som vi vil angi verdier i matrisen. Som i dette eksemplet har vi valgt 6 som tallet. Så vil tallene legges inn opptil 6 i matrisen.

Struct sample func(intn)

Nå, mot hovedprogrammet, har vi opprettet et objekt for å få tilgang til matrisen gjennom dette:

Strukturprøve x;

Etter initialisering av objekt blir en verdi lagt til variabelen som vi vil at tallene skal angis i matrisen. I et funksjonsanrop passerer vi verdien i parameteren:

X=funksjon(n);

Vi vil ha skjermen ved å bruke for -sløyfen. Verdiene vises gjennom objektet deklarert ved starten av hovedprogrammet:

Utgangen indikerer at 6 verdier vises i resultatet ettersom vi har lagt inn 6 tall i programmet.

Return Array Using Std

C ++ bruker mange metoder for å returnere en matrise fra funksjonen. En av dem er gjennom std :: array. Det er en mal med struktur. Denne funksjonen gir også ytterligere to funksjoner som er størrelse () og tom (). Et matrisenavn returneres som indikerer at hele matrisen returneres til hovedprogrammet. Her vil vi legge til en header file array. I tillegg til biblioteket inneholder den alle funksjonene i matrisen.

#inkludere

matrise<int,10>funksjon()

Siden vi kan returnere hele matrisen med navnet på den, så i erklæringen om en funksjon, vil vi bruke matrisen som en returtype. Data legges inn i matrisen. Etter det vil matrisen bli returnert til hovedprogrammet. Når vi beveger oss mot hovedfunksjonen, godtar en matrisevariabel matrisen når funksjonen kalles.

arr=funksjon();

Igjen, for loop vil bli brukt for å vise matriseverdier. Vi observerer utdataene fra bildet som vises nedenfor. Siden vi har brukt 10 størrelser, vil 0 tall legges inn. Derfor vises disse:

Return Array Through Vector Container

Denne tilnærmingen er en dynamisk tildelt matrise. Som i dette tilfellet er det ikke nødvendig å angi matrisestørrelse. Vi trenger ingen størrelsesparameter her. Ved å bruke dette eksemplet må vi legge til en vektoroverskrift i biblioteket som inneholder funksjonene til vektoren.

Beveger seg mot funksjonen, der returtypen også er en int -vektor og også inneholder en vektorpeker som et argument i parameteren. En matrise med navnet temp blir introdusert her:

Vector<int>MultiplyArrayByTwo(konstvektor<int> *arr)

Funksjonen vil multiplisere elementene i matrisen med to ved å bruke funksjonen tmp.push_back (). Returner deretter tmp. En variabel med automatisk type vil godta verdiene til matrisen fra funksjonen. Matrisen inneholder elementene i den.

Utgangen viser arbeidet til vektorbeholderen.

Konklusjon

I den nevnte artikkelen har vi beskrevet de fem mest brukte metodene for å forklare funksjonaliteten til å returnere en matrise fra funksjonen.