Hvordan Bestemme Størrelsen På En Matrise

Innholdsfortegnelse:

Hvordan Bestemme Størrelsen På En Matrise
Hvordan Bestemme Størrelsen På En Matrise

Video: Hvordan Bestemme Størrelsen På En Matrise

Video: Hvordan Bestemme Størrelsen På En Matrise
Video: Matriser 1 - Hva er en matrise? 2024, November
Anonim

Arrays er en av de mest brukte formene for datalagring i løpet av programdriften. De lar deg organisere elementer av samme type i en ordnet sekvens og få rask tilgang til dem via indeks. Svært ofte, når du utvikler applikasjoner på kraftige og fleksible programmeringsspråk som tillater direkte minnetilgang, for eksempel C ++, må du bestemme størrelsen på matrisen.

Hvordan bestemme størrelsen på en matrise
Hvordan bestemme størrelsen på en matrise

Nødvendig

C ++ kompilator

Bruksanvisning

Trinn 1

Bestem størrelsen på matrisen ved kompileringstid ved å beregne den ved hjelp av operatorstørrelsen. Denne operatøren returnerer mengden minne (i byte) okkupert av argumentet som sendes til det. Argumentet kan være enten en variabel eller en typeidentifikator. Operatørens størrelse returnerer den endelige mengden minne som er okkupert av objektet på tidspunktet for programutførelsen (med tanke på for eksempel innstillingene for justering av strukturfeltene), men beregningen utføres på kompileringsstadiet.

Steg 2

For å bestemme størrelsen på en matrise ved å bruke størrelsen på operatoren, deler du hele størrelsen på størrelsen på ett element. Hvis du for eksempel har følgende definisjon av en matrise: int aTemp = {10, 20, 0xFFFF, -1, 16}, kan størrelsen beregnes som: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);

Trinn 3

For en mer praktisk bruk av denne metoden er det fornuftig å definere en makro: #define countof (a) (sizeof (a) / sizeof (a [0])) Merk at siden verdien av størrelsen på operatoren beregnes ved kompilering tid, på det punktet der beregningen utføres, må informasjon om volumet til matrisen og dens elementer være tilgjengelig eksplisitt. Det er med andre ord umulig å bestemme parametrene til en matrise av ukjent størrelse ved den eksterne erklæringen.

Trinn 4

Bestem størrelsen på matrisen under gjennomføringen av programmet, ved å bruke det kjente tegnet på avslutningen. En av tilnærmingene som tillater lagring og overføring av data i form av matriser med ubestemt lengde, er å tildele en spesiell verdi for et tegn som indikerer fullføringen av en datasekvens. For eksempel må enkeltbyte C-stilstrenger som er tegnmatriser slutte med verdien 0, pakkede C-strengarrayer med variabel lengde er nullterminert, og pekerarrayer må nullstilles.

Trinn 5

For å bestemme størrelsen på en matrise representert på denne måten, skann den element for element til du finner avslutningselementet. Øk null-initialisert teller under skanningen. Eller øk verdien til pekeren til et matriseelement, og beregne forskjellen mellom pekerne og gjeldende og første elementer etter skanning.

Trinn 6

Få størrelsen på et dynamisk utvalg representert av et rammeverk eller bibliotekobjekt ved å kalle metoden. Alle klasser som innkapsler funksjonaliteten til slike matriser, har metoder for å få det nåværende antall elementer. For eksempel har std:: vektormalklassen til C ++ standardbiblioteket en størrelsesmetode, Qt-rammes QVector-klasse har en tellemetode, og MFCs analoge CArray-klasse har en GetCount-metode.

Anbefalt: