Pronađi veličinu niza C ++

Find Array Size C



Niz je spremnik koji ima elemente iste vrste podataka. Ako ne znamo stvarnu veličinu niza, to se može odrediti različitim metodama. Kada govorimo o veličini niza, zapravo govorimo o broju elemenata prisutnih u nizu. Ponekad definiramo veličinu polja, a ponekad zagrade ostaju prazne. Ovo je prividna veličina koja samo pokazuje sposobnost niza da pohrani vrijednost u njemu. Na primjer, razmislite o uzorku deklaracije niza

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

Ovdje je veličina niza ili duljina niza 6. A ukupna veličina polja koja se dodjeljuje nije prikazana. Stvarna veličina dobiva se primjenom različitih operacija. Ove se operacije koriste u ovom članku za dobivanje veličine niza.







Primjer 1

U ovoj ilustraciji koristit ćemo koncept begin () i end (). Pomoću ove metode lako se može saznati veličina niza. To su dvije knjižnice koje su poznate po standardnim knjižnicama. Ove dvije funkcije vraćaju iteratore koji prikazuju preliminarne i završne točke niza. Počevši od zaglavlja, koristimo biblioteku polja. To će uključivati ​​sve funkcije povezane s nizom. U glavnoj funkciji pokrenuli smo niz koji ima cijele vrijednosti.



Trošak<<……….<<kraj(do)-begib(do)<<

Ovdje nismo spomenuli veličinu niza. U izrazu prikaza nakon cout -a imamo funkcije end () i begin (). Različitost ove dvije funkcije pokazat će nam veličinu niza. U parametrima ovih funkcija proslijedili smo niz. Time će se utvrditi stvarna veličina. Rezultirajuća vrijednost ovih funkcija izravno se prikazuje.







Sada idemo prema izlazu. Ove bismo programe trebali izvoditi u Linuxu, pa nam je potrebno uključivanje Ubuntu terminala. Kako koristimo C ++ kôd, moramo ga sastaviti putem prevoditelja. To je G ++ kompajler. Nakon sastavljanja koda izvršit ćemo ga. Naredbe u nastavku prikazuju izlazni pristup koji smo koristili.

$ g++ -o kod2 šifra2.c

$./kod2



Sada možete vidjeti izlaz. Drugi sličan primjer u slučaju std je funkcija udaljenosti. Na ovoj udaljenosti izračunava se pomoću funkcija begin () i end (). To se dovršava korištenjem ovih funkcija sa std.

Int n=sati:: udaljenost(sati::početi(dol),sati::kraj(dol));

Izlaz se dobiva u cout naredbi. Da biste vidjeli zapis, ponovno upotrijebite prevoditelj za izvršavanje koda.

Ovdje možete vidjeti da je postignut željeni rezultat.

Primjer 2

Ovaj se primjer odnosi na upotrebu funkcije sizeof () u kodu C ++, jer ta vrijednost vraća stvarnu veličinu podataka u obliku bajtova. Nadalje, bavi se i vraćanjem broja bajtova koji se koriste za spremanje niza. Drugim riječima, u ovom primjeru prvi korak je inicijalizacija niza bez deklariranja veličine niza. sintaksa koja se koristi za funkciju sizeof () je:

Int al= veličina(dol)/veličina(dol[0]);

Gdje je arr niz. arr [0] prikazuje indeks elemenata u nizu.

Dakle, ova izjava implicira da je veličina niza podijeljena s veličinom svih prisutnih elemenata, jedan po jedan. To pomaže u izračunavanju duljine. Koristili smo cjelobrojnu varijablu za primanje i spremanje povratka vrijednosti iz funkcije.

Ovdje ćemo dobiti izlaz iz naredbenog retka istom metodom izvođenja prevođenja.

Izlaz prikazuje veličinu niza, što podrazumijeva broj elemenata prisutnih u njemu, što je 6.

Primjer 3

Ovaj primjer uključuje upotrebu funkcije size (). Ova je funkcija smještena u standardnu ​​biblioteku, STL. Početni korak u glavnom programu je deklaracija niza. Ovdje naziv niza također sadrži veličinu i cijelu vrijednost. Ova metoda također vraća rezultat izravno u izlaznom izrazu.

Trošak<<….<<dol.veličina()<<

Gdje je 'arr' niz, za dohvaćanje rezultata ili pristup funkciji potreban nam je naziv niza s funkcijom veličine.

Za prikaz rezultata koristimo g ++ kompajler za sastavljanje i izvršavanje rezultata.

Iz izlaza možete vidjeti da je rezultat naš željeni koji prikazuje stvarnu veličinu niza.

Primjer 4

Veličina niza također se može dobiti korištenjem pokazivača jer pokazivači spremaju adresu/mjesto vrijednosti varijable. Sada razmotrite sljedeći primjer.

Početni korak je inicijalizacija niza kao i obično. Tada pokazivač radi za veličinu polja.

Int len= *(&nizu+ 1)- niz;

Ovo je temeljna izjava koja radi kao pokazivač. * koristi se za lociranje položaja bilo kojeg elementa u nizu, dok se operator & koristi za dobivanje vrijednosti lokacije dobivene pokazivačem. Ovo je način na koji dobivamo veličinu niza iz pokazivača. Rezultat je prikazan kroz terminal. Odgovor je isti. Kako je veličina spomenutog niza navedena kao 13.

Primjer 5

U ovom primjeru koristili smo ideju odbitka argumenta predloška. Argument predloška je parametar posebne vrste. Koristi se za prosljeđivanje argumenta bilo koje vrste, baš kao i regularne funkcije koje se mogu proslijediti kao argument.

Kad se niz proslijedi kao parametar, on se pretvara u pokazivač za prikaz adrese. Da bismo dobili duljinu određenog niza, koristimo ovaj pristup odbitka argumenta predloška. Std je kratki oblik standarda.

Uzimajući u obzir navedeni primjer, uveli smo klasu predloška koja se koristi za dobivanje veličine niza. To je zadana ugrađena klasa koja sadrži sve funkcionalnosti argumenata predloška.

Constexpr std: : veličina_tveličina(konstT(&nizu)[N])noexcept{

povratakN;

}

Ovo je stalna linija u ovom konceptu. Izlaz se dobiva izravno u cout naredbi.

Iz izlaza možete vidjeti da smo dobili željeni izlaz: veličinu niza.

Primjer 6

Koristimo std :: vector za dobivanje veličine niza u programu. Ovo je vrsta kontejnera; njegova je funkcija pohranjivanje dinamičkih nizova. Radi s različitim metodama za različite operacije. Za postizanje ovog primjera koristili smo vektorsku biblioteku koja uključuje sve vektorske funkcije u njoj. Također deklarira cin, cout, endl i vector izraze koji će se koristiti u programu. Prvi se u programu pokreće niz. Izlaz je prikazan u cout naredbi prema veličini vektora.

Trošak<<vektorska veličina: <<int_array.veličina() <<endl;

Sada ćemo vidjeti izlaz s Ubuntu terminala. Veličina niza je točna elementima koji su u njemu prisutni.

Zaključak

U ovom smo vodiču koristili drugačiji pristup za dobivanje duljine ili veličine niza. Neke su ugrađene funkcije, dok se druge koriste ručno.