Poiščite velikost matrike C ++

Find Array Size C



Niz je vsebnik z elementi istega tipa podatkov. Če ne poznamo dejanske velikosti matrike, jo lahko določimo na različne načine. Ko govorimo o velikosti matrike, v resnici govorimo o številu elementov, ki so prisotni v matriki. Včasih določimo velikost matrike, včasih pa oklepaje pustimo prazne. To je navidezna velikost, ki prikazuje le sposobnost matrike, da v njej shrani vrednost. Na primer, razmislite o vzorčni deklaraciji polja

Int array[] = {1,2,3,4,5,6}

Tukaj je velikost matrike ali dolžina matrike 6. Skupna velikost matrike, ki jo je treba dodeliti, pa ni prikazana. Dejansko velikost dobimo z različnimi operacijami. Te operacije so uporabljene v tem članku za pridobitev velikosti matrike.







Primer 1

V tej ilustraciji bomo uporabili koncept begin () in end (). S to metodo lahko zlahka ugotovimo velikost matrike. To sta dve knjižnici, ki sta znani po standardnih knjižnicah. Ti dve funkciji vračata ponavljalnike, ki prikazujejo predhodne in končne točke matrike. Od glave uporabljamo knjižnico nizov. To bo vključevalo vse funkcije, povezane z matriko. V glavni funkciji smo sprožili niz s celoštevilčnimi vrednostmi.



Stroški<<……….<<konec(do)-begib(do)<<

Tukaj nismo omenili velikosti matrike. V stavku display, ki sledi cout, uporabljamo funkcije end () in begin (). Razlikovanje teh dveh funkcij nam bo pokazalo velikost matrike. V parametrih teh funkcij smo podali matriko. S tem bo določena dejanska velikost. Rezultat teh funkcij je neposredno prikazan.







Zdaj gremo proti izhodu. Te programe bi morali izvajati v Linuxu, zato potrebujemo vključitev terminala Ubuntu. Ker uporabljamo kodo C ++, moramo kodo prevesti prek prevajalnika. To je prevajalnik G ++. Po sestavljanju kode jo bomo izvedli. Spodnji ukazi prikazujejo izhodni pristop, ki smo ga uporabili.

g++ -o koda2 koda2.c

$./koda2



Zdaj lahko vidite izhod. Drug podoben primer v primeru std je funkcija razdalje. Na tej razdalji se izračuna z uporabo funkcij begin () in end (). To se zaključi z uporabo teh funkcij s std.

Int n=ure:: razdalja(ure::začeti(pribl),ure::konec(pribl));

Izhod je pridobljen v stavku cout. Če si želite ogledati zapis, znova uporabite prevajalnik za izvedbo kode.

Tukaj lahko vidite, da smo dosegli želeni rezultat.

Primer 2

Ta primer se nanaša na uporabo funkcije sizeof () v kodi C ++, saj ta vrednost vrne dejansko velikost podatkov v obliki bajtov. Poleg tega obravnava tudi vračanje števila bajtov, ki se uporabljajo za shranjevanje matrike. Z drugimi besedami, v tem primeru je prvi korak inicializiranje matrike brez razglasitve velikosti matrike. sintaksa, ki se uporablja za funkcijo sizeof (), je:

Int al= velikostof(pribl)/velikostof(pribl[0]);

Kjer je arr matrika. arr [0] prikazuje indeks elementov v matriki.

Ta izjava torej pomeni, da se velikost matrike deli z velikostjo vseh prisotnih elementov, enega za drugim. To pomaga pri izračunu dolžine. Za sprejem in shranjevanje vračila vrednosti iz funkcije smo uporabili celoštevilsko spremenljivko.

Izhod iz ukaznega poziva bomo dobili po istem načinu izvajanja prevajanja.

Izhod prikazuje velikost matrike, kar pomeni število elementov, ki so v njej prisotni, kar je 6.

Primer 3

Ta primer vključuje uporabo funkcije size (). Ta funkcija je shranjena v standardni knjižnici STL. Začetni korak v glavnem programu je deklaracija matrike. Tu ime matrike vsebuje tudi velikost in celo število. Ta metoda tudi vrne rezultat neposredno v izhodni stavek.

Stroški<<….<<pribl.velikost()<<

Kjer je 'arr' matrika, za pridobitev rezultata ali dostop do funkcije potrebujemo ime matrike s funkcijo velikosti.

Za prikaz rezultata uporabljamo prevajalnik g ++ za sestavljanje in izvedbo rezultata.

Iz izpisa lahko vidite, da je rezultat naš želeni, ki prikazuje dejansko velikost matrike.

Primer 4

Velikost matrike lahko dobimo tudi z uporabo kazalcev, saj kazalci shranijo naslov/lokacijo vrednosti spremenljivke. Zdaj razmislite o spodnjem primeru.

Prvi korak je inicializirati matriko kot običajno. Nato kazalec deluje za velikost matrike.

Int len= *(&matriko+ 1)- matrika;

To je jedrna izjava, ki deluje kot kazalec. * se uporablja za iskanje položaja katerega koli elementa v matriki, medtem ko se operator & uporablja za pridobitev vrednosti lokacije, pridobljene s kazalcem. Na ta način dobimo velikost polja iz kazalcev. Rezultat je prikazan skozi terminal. Odgovor je enak. Ker je bila velikost omenjenega niza navedena kot 13.

Primer 5

V tem primeru smo uporabili idejo odbitka argumenta predloge. Argument predloge je parameter posebne vrste. Uporablja se za posredovanje argumentov katere koli vrste, tako kot običajne funkcije, ki jih je mogoče posredovati kot argument.

Ko je matrika posredovana kot parameter, se pretvori v kazalec za prikaz naslova. Za pridobitev dolžine določene matrike uporabljamo ta pristop odbitka argumenta predloge. Std je kratka oblika standarda.

Glede na dani primer smo predstavili razred predloge, ki se uporablja za pridobitev velikosti matrike. To je privzeti vgrajeni razred, ki vsebuje vse funkcionalnosti argumentov predloge.

Constexpr std: : velikost_tvelikost(constT(&matriko)[N])noexcept{

vrnitevN;

}

To je stalna črta tega koncepta. Izhod se dobi neposredno v stavku cout.

Iz izhoda lahko vidite, da smo dobili želeni rezultat: velikost matrike.

Primer 6

Za pridobitev velikosti matrike v programu uporabljamo std :: vector. To je vrsta posode; njegova funkcija je shranjevanje dinamičnih nizov. Deluje z različnimi metodami za različne operacije. Za izvedbo tega primera smo uporabili vektorsko knjižnico, ki vključuje vse vektorske funkcije. Prav tako deklarira stavke cin, cout, endl in vector za uporabo v programu. Najprej se v programu sproži matrika. Izhod je prikazan v stavku cout po velikosti vektorja.

Stroški<<vektorska velikost: <<int_array.velikost() <<endl;

Zdaj bomo videli izhod iz terminala Ubuntu. Velikost matrike je natančna glede na elemente, ki so v njej.

Zaključek

V tej vadnici smo uporabili drugačen pristop za pridobitev dolžine ali velikosti matrike. Nekatere so vgrajene funkcije, druge pa ročno.