Returarray fra funktion C ++

Return Array From Function C



Arrays er specifikke beholdere, der har værdier af samme datatype. Funktioner i C ++ udfører operationer på arrays, og disse arrays returneres derefter til hovedfunktionen. Der er mange tilgange til at beskrive dette fænomen. I denne vejledning forklares nogle almindelige metoder:

Brug pointer til at returnere det statiske array

Når vi bruger et normalt array, er der chancer for at have en slags unormale resultater. For at undgå dette bruger vi et statisk array i vores C ++ - kode. Lad os forstå det eksempel, vi har brugt. I denne funktion har vi erklæret et array med 5 værdier for returtypen som nævnt her.







Int *funktion ()



Da værdien vil være en heltalstype, så er den mærket som int i eksemplet herunder. Da vi har introduceret funktionen som en markør, vil funktionen være en markørtype. Efter indtastning af værdierne returneres en matrix til hovedprogrammet.







I hovedprogrammet har vi foretaget et funktionsopkald. For at acceptere den værdi, der returneres fra funktionen, bruger vi en heltalsvariabel. Når matrixen returneres, har vi let adgang til dens værdier. Værdierne udskrives manuelt.

Int*markør=fungere();

Formålet med markøren er at lokalisere det element, der er til stede på indeks et af arrayet. Med andre ord viser den adressen på værdien i arrayet. Derefter bruger vi en funktionsprototype, der returnerer markøren.



For at se output fra arrayet returneret gennem funktionen, skal vi have adgang til Ubuntu -terminalen i tilfælde af Linux. Dette skyldes, at output er tilgængeligt via Linux -terminalen. I Linux har vi brug for en kompilator til at køre C ++ - koder skrevet i enhver tekstredigerer. Denne kompilering udføres gennem G ++. -O bruges til at gemme output i en fil. Her har vi brug for outputfilen og kildekodefilen. Efter kompilering udfører vi koden:

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

Fra output kan vi se, at arrayet, som blev initialiseret i funktionen, vises i hovedfunktionen ved hjælp af et statisk array, initialiseret manuelt og gennem pointerne.

Returner dynamisk tildelt array ved hjælp af pegepinde

Arrays kan returneres ved hjælp af dynamisk tildeling. Arrays kan tildeles dynamisk ved hjælp af ordet nyt. De vil forblive der, indtil vi sletter dem selv. Statiske arrays er faste i størrelse, hvilket betyder, at du skal angive størrelse under initialisering. Når arrayet er oprettet, er det svært at øge størrelsen på løbetid eller herefter. Men i tilfældet med det dynamiske array kan vi tilføje flere elementer, når vi vil, fordi det udvides, når vi indtaster værdier i det. Så vi behøver ikke at angive eller identificere nogen størrelse.

Bevægelse mod det eksempel, vi har brugt her. Vi har brugt et dynamisk array med pointerne som i de foregående eksempler, hvor vi har brugt pointers med de statiske arrays.

Int*fungere()

Efter funktionserklæring deklareres arrays dynamisk:

Int*array= ny int [100];

Udtrykket, nyt, bruges konstant til at skabe et dynamisk array. Vi udfører operationer på arrayet ved at indtaste værdier i det. Derefter returneres arrayet til hovedprogrammet:

Overvej nu hovedfunktionen. Vi har foretaget funktionskaldet. Når matrixen returneres, tilføjer vi en pointer integer type variabel for at acceptere værdien.

Int*markør=fungere();

De værdier, der blev gemt i arrayet, udskrives manuelt. Outputtet opnås ved hjælp af kompilations- og eksekveringsmetoden.

Return Array ved hjælp af strukturerne

Strukturer er containerne som arrays. Men array indeholder værdien af ​​den samme datatype ad gangen. Og i tilfælde af strukturer indeholder de mere end en datatypeværdi. Vi har taget en struktur med navnet sample. Her er matrixdeklarationen inde i strukturerne i stedet for funktioner. Returtypen er navnet på strukturen. Strukturvariablen returneres til hovedprogrammet. Strukturen bruger ordet struct til deklaration.

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

Efter strukturerklæringen har vi brugt en funktion, hvor et objekt af struktur oprettes. Dette objekt vil blive brugt til at få adgang til strukturen. Denne funktion vender strukturobjektet tilbage til hovedfunktionen, så vi kan udskrive arrayet gennem dette objekt. En variabel får værdierne i variablen. Denne værdi er det heltal, som vi vil indtaste værdier i arrayet. Som i dette eksempel har vi valgt 6 som nummer. Så vil tallene blive indtastet op til 6 i arrayet.

Struktureksempel func(intn)

Når vi nu bevæger os mod hovedprogrammet, har vi oprettet et objekt for at få adgang til arrayet gennem dette:

Strukturprøve x;

Efter initialisering af objekter tilføjes en værdi til variablen, hvortil vi ønsker, at tallene skal indtastes i arrayet. I et funktionsopkald sender vi værdien i parameteren:

x=fungere(n);

Vi får displayet ved at bruge for -sløjfen. Værdierne vises gennem det objekt, der blev erklæret ved starten af ​​hovedprogrammet:

Outputtet angiver, at der vises 6 værdier i resultatet, da vi har indtastet 6 tal i programmet.

Return Array ved hjælp af Std

C ++ bruger mange metoder til at returnere et array fra funktionen. En af dem er gennem std :: array. Det er en skabelon af struktur. Denne funktion giver også yderligere to funktioner, der er størrelse () og tomme (). Et matrixnavn returneres, der angiver, at hele arrayet returneres til hovedprogrammet. Her tilføjer vi et header -fil array. Ud over biblioteket indeholder det alle arrayets funktioner.

#omfatte

array<int,10>fungere()

Da vi kan returnere hele arrayet med navnet på det, så i erklæringen om en funktion, vil vi bruge arrayet som en returtype. Data indtastes i arrayet. Derefter returneres arrayet til hovedprogrammet. Når man bevæger sig mod hovedfunktionen, accepterer en matrixvariabel arrayet, når funktionen kaldes.

arr=fungere();

Igen vil loop blive brugt til visning af arrayværdier. Vi observerer output fra billedet vist nedenfor. Da vi har brugt 10 størrelser, indtastes 0 tal. Derfor vises disse:

Return Array gennem vektorbeholder

Denne tilgang er en dynamisk tildelt array. Som i dette tilfælde er det ikke nødvendigt at angive matrixstørrelse. Vi har ikke brug for nogen størrelsesparameter her. Ved hjælp af dette eksempel skal vi tilføje et vektoroverskrift i biblioteket, der indeholder vektorens funktionaliteter.

Bevæger sig mod funktionen, hvor returtypen også er en int -vektor og også indeholder en vektormarkør som et argument i parameteren. En matrix med navnet temp introduceres her:

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

Funktionen vil gange elementerne i arrayet med to ved hjælp af funktionen tmp.push_back (). Returner derefter tmp. En variabel af autotype accepterer værdierne af arrayet fra funktionen. Arrayen indeholder elementerne i den.

Outputtet viser funktionen af ​​vektorbeholderen.

Konklusion

I den førnævnte artikel har vi beskrevet de fem mest almindeligt anvendte metoder til at forklare funktionaliteten ved at returnere et array fra funktionen.