Vrati niz iz funkcije C ++

Return Array From Function C



Nizovi su specifični spremnici koji imaju vrijednosti iste vrste podataka. Funkcije u C ++ izvode operacije nad nizovima, a ti se nizovi zatim vraćaju u glavnu funkciju. Postoji mnogo pristupa za opisivanje ovog fenomena. U ovom vodiču objašnjene su neke uobičajene metode:

Koristite pokazivače za vraćanje statičkog niza

Kada koristimo normalan niz, postoje šanse za dobivanje neke vrste abnormalnih rezultata. Da bismo to izbjegli, koristimo statički niz u našem C ++ kodu. Shvatimo primjer koji smo koristili. U ovoj smo funkciji deklarirali niz s 5 vrijednosti povratnom vrstom kao što je ovdje spomenuto.







Int *funkcija ()



Kako će vrijednost biti cijeli broj, tako je označena kao int u donjem primjeru. Kako smo funkciju uveli kao pokazivač, funkcija će biti pokazivačkog tipa. Nakon unosa vrijednosti, niz se vraća u glavni program.







U glavnom smo programu pozvali funkciju. Za prihvaćanje vrijednosti koja se vraća iz funkcije koristit ćemo cjelobrojnu varijablu. Kad se niz vrati, lako možemo pristupiti njegovim vrijednostima. Vrijednosti će se ispisati ručno.

Int*pokazivač=funkcija();

Svrha pokazivača je lociranje stavke koja je prisutna u indeksu jedan niza. Drugim riječima, prikazuje adresu vrijednosti u nizu. Zatim koristimo prototip funkcije koji će vratiti pokazivač.



Da bismo vidjeli izlaz niza vraćen kroz funkciju, moramo imati pristup Ubuntu terminalu u slučaju Linuxa. To je zbog toga što je izlaz dostupan preko Linux terminala. U Linuxu nam je potreban prevoditelj za pokretanje C ++ kodova napisanih u bilo kojem uređivaču teksta. Ova kompilacija se vrši putem G ++. -O se koristi za spremanje rezultata u datoteku. Ovdje nam je potrebna izlazna datoteka i datoteka izvornog koda. Nakon kompilacije izvršit ćemo kod:

$g ++ -ilifile1 file1.c
$./datoteka1

Iz izlaza možemo vidjeti da je niz koji je inicijaliziran u funkciji prikazan u glavnoj funkciji pomoću statičkog niza, inicijaliziranog ručno i kroz pokazivače.

Vratite dinamički dodijeljeni niz pomoću pokazivača

Nizovi se mogu vratiti pomoću dinamičke dodjele. Nizovi se mogu dinamički dodijeliti pomoću riječi new. Oni će ostati tamo dok ih sami ne izbrišemo. Statički nizovi su fiksne veličine, što znači da morate unijeti veličinu tijekom inicijalizacije. Nakon što je niz kreiran, teško je povećati veličinu za vrijeme izvođenja ili kasnije. No, u slučaju dinamičkog niza, možemo dodati više stavki kad god želimo jer se širi kako u njega unosimo vrijednosti. Stoga ne moramo navesti ili identificirati bilo koju veličinu.

Krećući se prema primjeru koji smo ovdje upotrijebili. Koristili smo dinamički niz s pokazivačima kao u prethodnim primjerima, gdje smo koristili pokazivače sa statičkim nizovima.

Int*funkcija()

Nakon deklaracije funkcije, nizovi se dinamički deklariraju:

Int*nizu= novi int [100];

Pojam, novi, stalno se koristi za stvaranje dinamičkog niza. Izvodit ćemo operacije nad nizom unosom vrijednosti u njega. Nakon toga, niz se vraća u glavni program:

Razmotrimo sada glavnu funkciju. Uputili smo poziv funkcije. Kako se niz vraća, dodajemo varijablu tipa cijeli pokazivač da prihvatimo vrijednost.

Int*pokazivač=funkcija();

Vrijednosti koje su pohranjene u nizu ručno se ispisuju. Izlaz se dobiva metodom kompilacije i izvođenja.

Vratite niz pomoću struktura

Strukture su spremnici poput niza. No, niz sadrži vrijednost iste vrste podataka odjednom. A u slučaju struktura, one sadrže više od jedne vrijednosti tipa podataka. Uzeli smo strukturu nazvanu uzorak. Ovdje je deklaracija niza unutar struktura umjesto funkcija. Vrsta povratka je naziv strukture. Varijabla strukture vraća se u glavni program. Struktura koristi riječ struct za deklaraciju.

Uzorak strukture
{
Int dol[100];
};

Nakon deklaracije strukture koristili smo funkciju u kojoj se stvara objekt strukture. Ovaj objekt će se koristiti za pristup strukturi. Ova funkcija će vratiti objekt strukture u glavnu funkciju tako da možemo ispisati niz kroz ovaj objekt. Varijabla će dobiti vrijednosti u varijabli. Ova vrijednost je cijeli broj do kojeg ćemo unijeti vrijednosti u niz. Kao i u ovom primjeru, odabrali smo 6 kao broj. Dakle, brojevi će se unijeti do 6 u niz.

Uzorak strukture func(intn)

Krećući se prema glavnom programu, stvorili smo objekt za pristup nizu kroz ovo:

Uzorak strukture x;

Nakon inicijalizacije objekta, varijabli se dodaje vrijednost do koje želimo da se brojevi unose u niz. U pozivu funkcije proslijedit ćemo vrijednost u parametru:

x=funkcija(n);

Zaslon ćemo imati pomoću for petlje. Vrijednosti se prikazuju kroz objekt deklariran na početku glavnog programa:

Izlaz pokazuje da je u rezultatu prikazano 6 vrijednosti jer smo unijeli 6 brojeva u program.

Vratite niz pomoću Std

C ++ koristi mnoge metode za vraćanje niza iz funkcije. Jedan od njih je kroz std :: array. To je predložak strukture. Ova značajka također nudi još dvije funkcije koje su veličina () i prazna (). Vraća se naziv niza koji označava da je cijeli niz vraćen glavnom programu. Ovdje ćemo dodati niz datoteka zaglavlja. Osim knjižnice, sadrži sve funkcije niza.

#uključi

nizu<int,10>funkcija()

Budući da možemo vratiti cijeli niz s njegovim imenom, pa ćemo u deklaraciji funkcije koristiti niz kao povratni tip. Podaci se unose u niz. Nakon toga, niz će se vratiti u glavni program. Krećući se prema glavnoj funkciji, varijabla niza prihvatit će polje kada se funkcija pozove.

dol=funkcija();

Ponovno, petlja for će se koristiti za prikaz vrijednosti niza. Posmatramo izlaz sa slike prikazane ispod. Kako smo koristili 10 veličina, unijet će se 0 brojeva. Stoga se prikazuju:

Vratite niz kroz vektorski spremnik

Ovaj pristup je dinamički dodijeljen niz. Kao i u ovom slučaju, nema potrebe navoditi veličinu polja. Ovdje nam ne trebaju nikakvi parametri veličine. Pomoću ovog primjera moramo u biblioteku dodati zaglavlje vektora koji sadrži funkcionalnosti vektora.

Pomicanje prema funkciji, gdje je povratni tip također int vektor i također sadrži vektorski pokazivač kao argument u parametru. Ovdje je predstavljen niz s imenom temp:

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

Funkcija će pomnožiti elemente niza s dva pomoću funkcije tmp.push_back (). Zatim vratite tmp. Varijabla automatskog tipa prihvatit će vrijednosti niza iz funkcije. Niz sadrži stavke u njemu.

Izlaz prikazuje rad vektorskog spremnika.

Zaključak

U gore spomenutom članku opisali smo pet najčešće korištenih metoda za objašnjenje funkcionalnosti vraćanja niza iz funkcije.