Seturi dinamice

În FreePascal, Delphi a adăugat o caracteristică interesantă de a descrie matrice fără a specifica dimensiunile și, prin urmare, limitele modificărilor indexului:

var IntArray: mulțimea întregului;







Arrayurile dinamice multidimensionale sunt descrise ca matrice de matrice. De exemplu, bidimensional:

tip T3DinArray = matrice de matrice de Integer; var A. T3DinArray;

Astfel de matrice sunt dinamice și inițial au o lungime de zero. Setarea dimensiunii matricei și determinarea acesteia în timpul executării programului este aceeași ca și pentru rânduri, utilizând funcțiile SetLength și Lungime. respectiv. Elementele în acest caz sunt numerotate de la zero.







// Programul specifică prima rezoluție prima măsurătoare (numărul de coloane): setlength (A, 3); // Apoi, a doua rezoluție de măsurare este stabilită pentru fiecare din cele trei coloane, de exemplu: setlength (A [0], 3); SetLength (A [1], 2); SetLength (A [2], 1);

Aceasta creează o matrice triunghiulară:

Eliberați memoria ocupată de matrice, puteți utiliza același operator al setlength, care indică numărul de elemente de zero, sau prin utilizarea comenzii

Notă. atribuirea valorii zero eliberează memoria numai pentru rețelele dinamice ale Delphi. Pentru indicatorii normali, memoria nu este eliberată, ceea ce poate duce la așa-numita "scurgere" a memoriei.

Remarcăm o diferență semnificativă în șirurile și matricele dinamice care au aceeași reprezentare internă bazate pe indicii, dar diferite metode de operare. Două linii diferite constând din același set de caractere sunt considerate egale, iar cele două matrice care conțin elemente identice diferite nu sunt egale.







Articole similare

Trimiteți-le prietenilor: