Com Es Determina La Mida D'una Matriu

Taula de continguts:

Com Es Determina La Mida D'una Matriu
Com Es Determina La Mida D'una Matriu
Anonim

Les matrius són una de les formes d’emmagatzematge de dades més freqüents durant el funcionament del programa. Permeten organitzar elements del mateix tipus en una seqüència ordenada i accedir-hi ràpidament per índex. Molt sovint, quan es desenvolupen aplicacions en llenguatges de programació potents i flexibles que permeten l'accés directe a la memòria, com ara C ++, cal determinar la mida de la matriu.

Com es determina la mida d'una matriu
Com es determina la mida d'una matriu

Necessari

Compilador C ++

Instruccions

Pas 1

Determineu la mida de la matriu en temps de compilació calculant-la mitjançant l’operador sizeof. Aquest operador retorna la quantitat de memòria (en bytes) ocupada per l'argument que li ha passat. L'argument pot ser una variable o un identificador de tipus. L'operador sizeof retorna la quantitat finita de memòria ocupada per l'objecte en la fase d'execució del programa (tenint en compte, per exemple, la configuració per a l'alineació dels camps de l'estructura), però el seu càlcul es realitza en la fase de compilació.

Pas 2

Per determinar la mida d'una matriu mitjançant l'operador sizeof, divideix tota la seva mida per la mida d'un element. Per exemple, si teniu la següent definició d'una matriu: int aTemp = {10, 20, 0xFFFF, -1, 16}, la seva mida es pot calcular com: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);

Pas 3

Per a un ús més còmode d’aquest mètode, té sentit definir una macro: #define countof (a) (sizeof (a) / sizeof (a [0])) Tingueu en compte que, atès que el valor de l’operador sizeof es calcula en compilar temps, en el punt on es realitza el càlcul, la informació sobre el volum de la matriu i els seus elements ha d’estar disponible explícitament. En altres paraules, és impossible determinar els paràmetres d'una matriu de mida desconeguda mitjançant la seva declaració externa.

Pas 4

Determineu la mida de la matriu durant l'execució del programa, utilitzant el signe conegut de la seva finalització. Un dels enfocaments que permet emmagatzemar i transmetre dades en forma de matrius de longitud indefinida és assignar un valor especial per a un signe que indica la finalització d’una seqüència de dades. Per exemple, les cadenes d’estil C d’un sol byte que són matrius de caràcters han d’acabar amb un valor de 0, les matrius de cadenes C de longitud variable empaquetades s’acaben a zero i les matrius de punter han de ser nul·les.

Pas 5

Per determinar la mida d'una matriu representada d'aquesta manera, escanegeu-la element per element fins que trobeu l'element final. Incrementeu el comptador inicialitzat a zero durant l'exploració. O bé, augmenteu el valor del punter a un element de matriu i, després d’escanejar-lo, calculeu la diferència entre els punteres als elements actuals i primers.

Pas 6

Obteniu la mida d'una matriu dinàmica representada per un marc o un objecte de biblioteca trucant al seu mètode. Totes les classes que encapsulen la funcionalitat d'aquestes matrius tenen mètodes per obtenir el nombre actual d'elements. Per exemple, la classe de plantilla std:: vector de la biblioteca estàndard C ++ té un mètode de mida, la classe QVector del framework Qt té un mètode de recompte i la classe CArray anàloga de l'MFC té un mètode GetCount.

Recomanat: