Vrni niz iz funkcije C ++

Return Array From Function C



Nizovi so posebni vsebniki, ki imajo vrednosti istega podatkovnega tipa. Funkcije v C ++ izvajajo operacije nad matrikami in te matrike se nato vrnejo v glavno funkcijo. Obstaja veliko pristopov za opis tega pojava. V tem priročniku so razložene nekatere običajne metode:

Uporabite kazalce za vrnitev statičnega niza

Ko uporabljamo običajno matriko, obstaja možnost, da pride do neke vrste nenormalnih rezultatov. Da bi se temu izognili, v kodi C ++ uporabljamo statično matriko. Razumejmo primer, ki smo ga uporabili. V tej funkciji smo polje z 5 vrednostmi razglasili za vrnjeni tip, kot je omenjeno tukaj.







Int *funkcija ()



Ker bo vrednost celoštevilska, je v spodnjem primeru označena kot int. Ker smo funkcijo predstavili kot kazalec, bo funkcija tipa kazalca. Po vnosu vrednosti se matrika vrne v glavni program.







V glavnem programu smo poklicali funkcijo. Za sprejetje vrednosti, ki se vrne iz funkcije, bomo uporabili celoštevilsko spremenljivko. Ko je matrika vrnjena, lahko enostavno dostopamo do njenih vrednosti. Vrednosti bodo natisnjene ročno.

Int*kazalec=funkcijo();

Namen kazalca je poiskati element, ki je prisoten v indeksu ena matrike. Z drugimi besedami, prikazuje naslov vrednosti v matriki. Nato uporabimo prototip funkcije, ki vrne kazalec.



Če želimo videti izhod matrike, vrnjene s funkcijo, moramo imeti v primeru Linuxa dostop do terminala Ubuntu. To je posledica tega, da je izhod dostopen prek terminala Linux. V Linuxu potrebujemo prevajalnik za izvajanje kod C ++, napisanih v katerem koli urejevalniku besedil. Ta kompilacija se izvede prek G ++. -O se uporablja za shranjevanje izpisa v datoteko. Tu potrebujemo izhodno datoteko in datoteko izvorne kode. Po kompilaciji bomo izvedli kodo:

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

Iz izpisa lahko vidimo, da je matrika, ki je bila inicializirana v funkciji, prikazana v glavni funkciji s pomočjo statičnega niza, inicializiranega ročno in skozi kazalce.

Vrnite dinamično dodeljen niz z uporabo kazalcev

Nizke je mogoče vrniti z uporabo dinamične dodelitve. Nizke je mogoče dinamično dodeliti z besedo novo. Tam bodo ostali, dokler jih sami ne izbrišemo. Statična polja so fiksne velikosti, kar pomeni, da morate med inicializacijo navesti velikost. Ko je matrika ustvarjena, je težko povečati velikost med izvajanjem ali v nadaljevanju. Toda v primeru dinamičnega niza lahko dodamo več elementov, kadar koli želimo, ker se širi, ko vanj vnašamo vrednosti. Zato nam ni treba določiti ali opredeliti nobene velikosti.

Če se približamo primeru, ki smo ga uporabili tukaj. S kazalci smo uporabili dinamično polje kot v prejšnjih primerih, kjer smo uporabili kazalce s statičnimi matrikami.

Int*funkcijo()

Po razglasitvi funkcije se matrike razglasijo dinamično:

Int*matriko= nov int [100];

Nov izraz se nenehno uporablja za ustvarjanje dinamičnega niza. Operacije z matriko bomo izvajali tako, da vanj vnesemo vrednosti. Po tem se matrika vrne v glavni program:

Zdaj razmislite o glavni funkciji. Opravili smo klic funkcije. Ko se matrika vrne, dodamo spremenljivko tipa celega kazalca, da sprejmemo vrednost.

Int*kazalec=funkcijo();

Vrednosti, shranjene v matriki, se natisnejo ročno. Rezultat se pridobi z metodo sestavljanja in izvajanja.

Vrni niz z uporabo struktur

Strukture so vsebniki kot matrike. Toda matrika naenkrat vsebuje vrednost iste vrste podatkov. V primeru struktur pa vsebujejo več kot eno vrednost podatkovnega tipa. Vzeli smo strukturo z imenom vzorec. Tukaj je deklaracija niza znotraj struktur namesto funkcij. Vrnitev je ime strukture. Strukturna spremenljivka se vrne v glavni program. Struktura za deklaracijo uporablja besedo struct.

Strukturni vzorec
{
Int arr[100];
};

Po objavi strukture smo uporabili funkcijo, v kateri je ustvarjen objekt strukture. Ta predmet bo uporabljen za dostop do strukture. Ta funkcija bo objekt strukture vrnila v glavno funkcijo, tako da lahko matriko natisnemo skozi ta objekt. Spremenljivka bo dobila vrednosti v spremenljivki. Ta vrednost je celo število, do katerega vnesemo vrednosti v matriko. Kot v tem primeru smo za številko izbrali 6. Številke bodo torej v polje vnesene do 6.

Vzorec strukture func(intn)

Zdaj, ko gremo proti glavnemu programu, smo ustvarili objekt za dostop do matrike s tem:

Vzorec strukture x;

Po inicializaciji objekta se spremenljivki doda vrednost, do katere želimo, da se številke vnesejo v matriko. V klicu funkcije bomo v parametru posredovali vrednost:

X=funkcijo(n);

Zaslon bomo imeli z uporabo zanke for. Vrednosti so prikazane skozi predmet, prijavljen na začetku glavnega programa:

Izhod kaže, da je v rezultatu prikazanih 6 vrednosti, saj smo v program vnesli 6 številk.

Vrni niz z uporabo Std

C ++ uporablja številne metode za vrnitev matrike iz funkcije. Eden od njih je prek std :: array. Je predloga strukture. Ta funkcija ponuja tudi dve dodatni funkciji, ki sta velikost () in prazna (). Vrne se ime polja, ki označuje, da se celotno polje vrne v glavni program. Tukaj bomo dodali datoteko z glavo. Poleg knjižnice vsebuje vse funkcije matrike.

#vključi

matriko<int,10>funkcijo()

Ker lahko vrnemo celotno polje z njegovim imenom, bomo v razglasitvi funkcije matriko uporabili kot vrnilno vrsto. Podatki se vnesejo v matriko. Po tem se matrika vrne v glavni program. Če se premaknemo proti glavni funkciji, spremenljivka matrike sprejme matriko, ko se funkcija pokliče.

pribl=funkcijo();

Znova bo zanka for prikazala vrednosti matrike. Opazujemo izhod iz spodnje slike. Ker smo uporabili 10 velikosti, bo vnesenih 0 številk. Zato so prikazani:

Vrnite matriko skozi vektorski vsebnik

Ta pristop je dinamično dodeljena matrika. Tako kot v tem primeru ni treba določiti velikosti matrike. Tu ne potrebujemo nobenega parametra velikosti. S tem primerom moramo v knjižnico dodati vektorsko glavo, ki vsebuje funkcionalnosti vektorja.

Premik proti funkciji, kjer je vrnjeni tip tudi int vektor in vsebuje tudi vektorski kazalec kot argument v parametru. Tu je predstavljen niz z imenom temp:

Vektor<int>MultiplyArrayByTwo(constvektor<int> *pribl)

Funkcija bo pomnožila elemente matrike za dva s pomočjo funkcije tmp.push_back (). Nato vrnite tmp. Spremenljivka samodejnega tipa bo sprejela vrednosti matrike iz funkcije. Niz vsebuje elemente v njem.

Izhod prikazuje delovanje vektorskega vsebnika.

Zaključek

V omenjenem članku smo opisali pet najpogosteje uporabljenih metod za razlago funkcionalnosti vračanja matrike iz funkcije.