Un set numit de elemente de același tip se numește matrice. O astfel de organizare a datelor are o mulțime de avantaje evidente și un dezavantaj - atunci când creați o matrice, este necesar să declarați dimensiunea acesteia în avans, care nu poate fi modificată prin mijloace convenționale în viitor. Soluția la această problemă este de a dezvolta matrice dinamice care pot schimba numărul elementelor lor în orice moment. Mai mult, pentru aceasta, puteți utiliza ambele clase deja create și să le implementați pe cele proprii utilizând instrumente standard de limbaj de programare.
Instrucțiuni
Pasul 1
Esența principală a unei matrice dinamice este de a aloca memorie pentru datele stocate în ea exact în dimensiunea în care este necesară în acest moment. Este cel mai convenabil să implementați această construcție sub forma unei clase - un wrapper pentru o matrice. Aici este necesar să se prevadă toate funcțiile care efectuează alocarea și eliberarea memoriei pentru o matrice, precum și operatorii care oferă acces la elementele sale.
Pasul 2
Creați un obiect al clasei de împachetare din matrice dinamică, iar constructorul va aloca automat memoria de dimensiunea specificată. Dacă, pe măsură ce matricea este umplută, memoria pentru elemente va fi complet ocupată, la adăugarea următoarelor date, se efectuează următoarele acțiuni: - toate informațiile din matrice sunt stocate în stocare temporară (matrice auxiliară); eliberat printr-o comandă specială (liberă, ștergere); - memoria este alocată sub matricea de dimensiunea necesară pentru a conține toate datele - toate valorile „vechi” sunt plasate în matricea nouă din stocarea temporară și o nouă se adaugă element.
Pasul 3
Cel mai bun mod de a lucra cu tablouri dinamice este de a utiliza clasele de biblioteci existente. Unul dintre cele mai frecvente exemple este clasa vectorială. Acesta include toate funcțiile și iteratorii necesari pentru funcționarea unui tablou mutabil. Mai mult, modulul de bibliotecă care conține această clasă este furnizat cu orice versiune a compilatorului C ++.
Pasul 4
Includeți biblioteca din matrice dinamică utilizând comanda #include. Utilizați clasa vector pentru a crea un obiect. Deplasarea prin matrice este la fel ca în cazul obișnuit, folosind indici. Caracteristicile speciale de aici sunt funcțiile pentru adăugarea și eliminarea de elemente noi, precum și o serie de metode auxiliare. Un exemplu de cod pentru crearea și operarea unui vector de matrice dinamică: #include vector; vector int Mass; // declararea unui tablou dinamic cu elemente de tip intMas.push_back (10); // adăugarea primului element - numărul 10 Mas.push_back (15); // adăugarea celui de-al doilea element - numărul 15Mas [1] = 30; // al doilea element este scris cu numărul 30Mas.pop_back (); // ștergerea ultimului element al tabloului Aici, atunci când creați un tablou dinamic numit Mass, trebuie specificat tipul elementelor sale (int), dimensiunea nu este specificată în acest caz.