Imenovani skup elemenata istog tipa naziva se nizom. Takva organizacija podataka ima puno očiglednih prednosti i jedan nedostatak - pri stvaranju niza potrebno je unaprijed navesti njegovu veličinu, koja se u budućnosti neće moći promijeniti konvencionalnim sredstvima. Rješenje ovog problema je razvoj dinamičkih nizova koji mogu promijeniti broj njihovih elemenata u bilo kojem trenutku. Štoviše, za ovo možete koristiti i već kreirane klase i implementirati vlastite pomoću standardnih alata za programski jezik.
Instrukcije
Korak 1
Glavna suština dinamičkog niza je dodjela memorije za podatke koji su u njemu pohranjeni tačno u veličini u kojoj je trenutno potrebna. Najprikladnije je ovu konstrukciju implementirati u obliku klase - omota za niz. Ovdje je potrebno osigurati sve funkcije koje izvršavaju dodjelu i oslobađanje memorije za niz, kao i operatore koji omogućuju pristup njegovim elementima.
Korak 2
Stvorite objekt klase omotača dinamičkog niza i konstruktor će automatski dodijeliti memoriju određene veličine. Ako se, dok se niz popunjava, memorija za elemente potpuno zauzme, prilikom dodavanja sljedećih podataka izvršavaju se sljedeće radnje: - sve informacije iz niza pohranjuju se u privremenu pohranu (pomoćni niz); - prethodno dodijeljena memorija je oslobođena posebnom naredbom (besplatno, brisanje); - memorija se dodjeljuje ispod niza veličine koja je potrebna da sadrži sve podatke - sve "stare" vrijednosti smještene su u novi niz iz privremene pohrane i nova element je dodan.
Korak 3
Najbolji način za rad s dinamičkim nizovima je upotreba postojećih klasa biblioteke. Jedan od najčešćih primjera je vektorska klasa. Uključuje sve funkcije i iteratore potrebne za funkcioniranje promjenjivog niza. Štaviše, modul biblioteke koji sadrži ovu klasu isporučuje se s bilo kojom verzijom C ++ kompajlera.
Korak 4
Uključite biblioteku dinamičkih nizova pomoću naredbe #include. Koristite vektorsku klasu za stvaranje objekta. Kretanje kroz niz je isto kao i u uobičajenom slučaju, koristeći indekse. Ovdje su posebne značajke funkcije za dodavanje i uklanjanje novih elemenata, kao i niz pomoćnih metoda. Primjer koda za stvaranje i upravljanje dinamičkim vektorom niza: #include vector; vector int Mass; // deklaracija dinamičkog niza s elementima tipa intMas.push_back (10); // dodavanje prvog elementa - broj 10 Mas.push_back (15); // dodavanje drugog elementa - broj 15Mas [1] = 30; // u drugi element upisuje se broj 30Mas.pop_back (); // brisanje posljednjeg elementa niza Ovdje, prilikom kreiranja dinamičkog niza pod nazivom Mass, mora se navesti tip njegovih elemenata (int), a dimenzija u ovom slučaju nije navedena.