Kako Odrediti Veličinu Niza

Sadržaj:

Kako Odrediti Veličinu Niza
Kako Odrediti Veličinu Niza

Video: Kako Odrediti Veličinu Niza

Video: Kako Odrediti Veličinu Niza
Video: Как это работает: Система Видимости в World of Warships. 2024, Svibanj
Anonim

Nizovi su jedan od najčešće korištenih oblika pohrane podataka tijekom rada programa. Omogućuju vam organiziranje elemenata iste vrste u poredani redoslijed i brzi pristup indeksom. Vrlo često, kada razvijate aplikacije na moćnim i fleksibilnim programskim jezicima koji omogućuju izravan pristup memoriji, poput C ++, morate odrediti veličinu niza.

Kako odrediti veličinu niza
Kako odrediti veličinu niza

Potrebno

Kompajler C ++

Upute

Korak 1

Odredite veličinu niza u vrijeme kompajliranja izračunavanjem pomoću operatora sizeof. Ovaj operator vraća količinu memorije (u bajtovima) koju zauzima argument koji mu je proslijeđen. Argument može biti varijabla ili identifikator tipa. Operator sizeof vraća konačnu količinu memorije koju je objekt zauzeo u fazi izvršenja programa (uzimajući u obzir, na primjer, postavke za poravnanje polja strukture), ali njegov se izračun izvodi u fazi kompilacije.

Korak 2

Da biste odredili veličinu niza pomoću operatora sizeof, podijelite cijelu njegovu veličinu s veličinom jednog elementa. Na primjer, ako imate sljedeću definiciju niza: int aTemp = {10, 20, 0xFFFF, -1, 16}, tada se njegova veličina može izračunati kao: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);

3. korak

Za praktičniju upotrebu ove metode, ima smisla definirati makronaredbu: #define countof (a) (sizeof (a) / sizeof (a [0])) Imajte na umu da se s obzirom na to da se vrijednost sizeof operatora izračunava pri kompajliranju vrijeme, na mjestu gdje se vrši izračun, podaci o volumenu niza i njegovim elementima moraju biti eksplicitno dostupni. Drugim riječima, nemoguće je odrediti parametre niza nepoznate veličine pomoću njegove vanjske deklaracije.

4. korak

Odredite veličinu niza tijekom izvođenja programa, koristeći poznati znak njegovog prekida. Jedan od pristupa koji omogućuje pohranu i prijenos podataka u obliku nizova neodređene duljine je dodjela posebne vrijednosti znaku koji označava dovršetak niza podataka. Na primjer, jednobajtni nizovi u stilu C koji su nizovi znakova moraju završiti s vrijednošću 0, pakirani nizovi C-nizova promjenjive duljine završavaju se nulom, a nizovi pokazivača moraju biti završeni nulom.

Korak 5

Da biste odredili veličinu polja predstavljenog na ovaj način, skenirajte ga element po element dok ne pronađete završni element. Povećajte brojač inicijaliziran nulom tijekom skeniranja. Ili, povećajte vrijednost pokazivača na element niza i nakon skeniranja izračunajte razliku između pokazivača na trenutni i prvi element.

Korak 6

Dobivanjem veličine dinamičkog polja predstavljenog okvirom ili objektom knjižnice pozivanjem njegove metode. Sve klase koje inkapsuliraju funkcionalnost takvih nizova imaju metode za dobivanje trenutnog broja elemenata. Primjerice, klasa predloška std:: vector standardne knjižnice C ++ ima metodu veličine, klasa QVector Qt okvira ima metodu brojanja, a analogna klasa CArray MFC-a ima metodu GetCount.

Preporučeni: