Hogyan Lehet Meghatározni Egy Tömb Méretét

Tartalomjegyzék:

Hogyan Lehet Meghatározni Egy Tömb Méretét
Hogyan Lehet Meghatározni Egy Tömb Méretét

Videó: Hogyan Lehet Meghatározni Egy Tömb Méretét

Videó: Hogyan Lehet Meghatározni Egy Tömb Méretét
Videó: C# 5 perc alatt - Tömb, Minimum- és Maximum-keresés 2024, Lehet
Anonim

A tömbök az egyik leggyakrabban használt adattárolási forma a program működése során. Lehetővé teszik az azonos típusú elemek rendezett sorrendbe rendezését, és gyors elérést indexük alapján. Nagyon gyakran, amikor olyan erőteljes és rugalmas programozási nyelveken fejlesztenek alkalmazásokat, amelyek lehetővé teszik a közvetlen memóriamegközelítést, mint például a C ++, meg kell határozni a tömb méretét.

Hogyan lehet meghatározni egy tömb méretét
Hogyan lehet meghatározni egy tömb méretét

Szükséges

C ++ fordító

Utasítás

1. lépés

Határozza meg a tömb méretét a fordítás idején úgy, hogy kiszámítja azt a sizeof operátor segítségével. Ez az operátor visszaadja a memóriát (bájtban), amelyet a neki átadott argumentum foglal el. Az argumentum lehet változó vagy típusazonosító. A sizeof operátor visszaadja az objektum által a program végrehajtásának szakaszában elfoglalt véges memóriamennyiséget (figyelembe véve például a struktúramezők igazításának beállításait), de annak kiszámítását az összeállítás szakaszában végzik.

2. lépés

A tömb méretének meghatározásához a sizeof operátor segítségével ossza el a teljes méretét egy elem méretével. Például, ha a következő tömb definícióval rendelkezik: int aTemp = {10, 20, 0xFFFF, -1, 16}, akkor annak mérete kiszámítható: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);

3. lépés

A módszer kényelmesebb használata érdekében érdemes meghatározni egy makrót: #define countof (a) (sizeof (a) / sizeof (a [0])) Vegye figyelembe, hogy mivel az operátor sizeof értékét a fordításkor számoljuk A számítás elvégzésének időpontjában a tömb térfogatára és elemeire vonatkozó információknak kifejezetten rendelkezésre kell állniuk. Más szavakkal, lehetetlen meghatározni egy ismeretlen méretű tömb paramétereit külső deklarációjával.

4. lépés

Határozza meg a tömb méretét a program végrehajtása során, a megszüntetés ismert jele alapján. Az egyik megközelítés, amely lehetővé teszi az adatok tárolását és továbbítását határozatlan hosszúságú tömbök formájában, az az, hogy az adatszekvencia befejezését jelző jelhez külön értéket rendelünk. Például az egybájtos C-stílusú karaktersorozatoknak, amelyek karaktertömbök, 0-val kell végződniük, a változó hosszúságú, csomagolt változó hosszúságú C-karaktersorozatok nulla végűek, a mutató tömböknek pedig null-végűek.

5. lépés

Az így ábrázolt tömb méretének meghatározásához elemenként elemezze be, amíg meg nem találja a befejező elemet. Növelje a nulla inicializált számlálót a vizsgálat során. Vagy növelje a mutató értékét tömb elemre, és a beolvasás után számítsa ki az aktuális és az első elemre mutató mutatók közötti különbséget.

6. lépés

Szerezze meg a keretrendszer vagy a könyvtár objektum által képviselt dinamikus tömb méretét a metódusának meghívásával. Bármely osztály, amely az ilyen tömbök funkcionalitását foglalja magában, rendelkezik módszerekkel az aktuális elemek számának megszerzésére. Például a C ++ szabványos könyvtár std:: vektor sablon osztályának van méretmódszere, a Qt keretrendszer QVector osztályának számlálási módszere, az MFC analóg CArray osztályának pedig GetCount metódusa van.

Ajánlott: