Ako Určiť Veľkosť Poľa

Obsah:

Ako Určiť Veľkosť Poľa
Ako Určiť Veľkosť Poľa

Video: Ako Určiť Veľkosť Poľa

Video: Ako Určiť Veľkosť Poľa
Video: ЗЛО ЕЩЕ ЗДЕСЬ ЖУТКАЯ НОЧЬ В СТРАШНОМ ДОМЕ / EVIL IS STILL HERE A TERRIBLE NIGHT IN A TERRIBLE HOUSE 2024, Smieť
Anonim

Polia sú jednou z najbežnejšie používaných foriem ukladania dát v priebehu prevádzky programu. Umožňujú vám usporiadať prvky rovnakého typu v usporiadanom poradí a získať k nim rýchly prístup pomocou indexu. Pri vývoji aplikácií vo výkonných a flexibilných programovacích jazykoch, ktoré umožňujú priamy prístup do pamäte, napríklad C ++, je veľmi často potrebné určiť veľkosť poľa.

Ako určiť veľkosť poľa
Ako určiť veľkosť poľa

Nevyhnutné

Kompilátor C ++

Inštrukcie

Krok 1

Určte veľkosť poľa v čase kompilácie výpočtom pomocou operátora sizeof. Tento operátor vráti množstvo pamäte (v bajtoch) obsadené argumentom, ktorý mu bol odovzdaný. Argumentom môže byť buď premenná, alebo identifikátor typu. Operátor sizeof vráti konečné množstvo pamäte obsadenej objektom v štádiu vykonávania programu (berúc do úvahy napríklad nastavenia pre zarovnanie polí štruktúry), ale jeho výpočet sa vykoná vo fáze kompilácie.

Krok 2

Ak chcete určiť veľkosť poľa pomocou operátora sizeof, vydelte jeho celú veľkosť veľkosťou jedného prvku. Napríklad ak máte nasledujúcu definíciu poľa: int aTemp = {10, 20, 0xFFFF, -1, 16}, potom jeho veľkosť možno vypočítať ako: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);

Krok 3

Pre pohodlnejšie použitie tejto metódy má zmysel definovať makro: #define counttof (a) (sizeof (a) / sizeof (a [0])) Všimnite si, že keďže hodnota operátora sizeof sa počíta pri kompilácii čas, v bode, kde sa vykonáva výpočet, musia byť výslovne dostupné informácie o objeme poľa a jeho prvkoch. Inými slovami, je nemožné určiť parametre poľa neznámej veľkosti pomocou jeho externej deklarácie.

Krok 4

Určte veľkosť poľa počas vykonávania programu pomocou známeho znaku jeho ukončenia. Jedným z prístupov, ktorý umožňuje ukladanie a prenos dát vo forme polí neurčitej dĺžky, je pridelenie špeciálnej hodnoty pre znamienko označujúce dokončenie dátovej sekvencie. Napríklad jednobajtové reťazce v štýle C, ktoré sú poľami znakov, musia končiť hodnotou 0, zabalené polia reťazca C s premennou dĺžkou sú zakončené nulou a polia ukazovateľov musia byť zakončené nulou.

Krok 5

Ak chcete určiť veľkosť takto reprezentovaného poľa, skenujte ho prvok po prvku, kým nenájdete zakončovací prvok. Počas skenovania zvýšte počítadlo inicializované na nulu. Alebo zvýšte hodnotu ukazovateľa na prvok poľa a po skenovaní vypočítajte rozdiel medzi ukazovateľmi na aktuálny a prvý prvok.

Krok 6

Získajte veľkosť dynamického poľa predstavovaného objektom rámca alebo knižnice volaním jeho metódy. Všetky triedy, ktoré obsahujú funkciu týchto polí, majú metódy na získanie aktuálneho počtu prvkov. Napríklad trieda šablón std:: vector v štandardnej knižnici C ++ má metódu veľkosti, trieda QV v rámci Qt má metódu počítania a analogická trieda CArray v MFC má metódu GetCount.

Odporúča: