Ena izmed vrst podatkovnih struktur, ki se danes pogosto uporabljajo pri programiranju aplikacij, je sklad. Njegova posebnost je načelo organiziranja elementov, pri katerem je njihovo dodajanje in odstranjevanje možno le po enkrat in samo skozi "vrh", torej po načelu LIFO. Včasih pa je treba očistiti celoten kup naenkrat.
Potrebno
- - urejevalnik besedil ali IDE;
- - prevajalec iz uporabljenega programskega jezika.
Navodila
Korak 1
Uporabite metode za predmete sklada, ki so posebej zasnovani za čiščenje sklada. Prisotni so v večini ustreznih razredov različnih knjižnic in okvirov. Na primer, razred. NET Stack ima metodo Clear. Primer njegove uporabe v jeziku C # bi lahko bil videti takole:
Stack oStack = nov sklad (); // ustvarimo objekt sklada
oStack. Push ("000"); // napolnim kup
oStack. Push ("111");
oStack. Clear (); // počisti kup
2. korak
Za čiščenje lahko uporabimo tudi metode za spreminjanje števila elementov razredov vsebnikov, na katerih se pogosto gradi funkcionalnost razredov skladov. Samo trenutno število elementov morate zmanjšati na nič. Na primer, razred predloge Qt QStack podeduje iz razreda predloge QVector, ki ima metodo spreminjanja velikosti. Primer njegove uporabe bi lahko bil tak:
QStack oStack; // izjava predmeta sklada
za (int i = 0; i <10; i ++) oStack.push (i); // napolnim kup
oStack.resize (0); // počisti kup
3. korak
Čiščenje predmeta sklada se običajno lahko opravi z operaterjem dodelitve, ki se pogosto izvaja v ustreznih razredih. Če želite to narediti, je treba predmetu sklada, ki ga želite počistiti, dodeliti začasni objekt, ki ga je ustvaril privzeti konstruktor. Na primer, predlagani razred sklada standardne knjižnice C ++, ki je vmesnik za predloge s predlogom vsebnika, nima metod za samovoljno spreminjanje števila ali odstranjevanje vseh elementov. To lahko počistite tako:
std:: stack <int, std:: list> oStack; // izjava predmeta sklada
za (int i = 0; i <10; i ++) oStack.push (i); // napolnim kup
oStack = std:: stack
4. korak
Počistite objekt sklada tako, da pokličete konstruktor kopiranja z uporabo novega operatorja z argumentom predmeta, ki ga ustvari privzeti konstruktor:
std:: stack <int, std:: list> oStack; // izjava predmeta sklada
za (int i = 0; i <10; i ++) oStack.push (i); // napolnim kup
nov std:: stack
5. korak
Sklad je mogoče očistiti z zaporednim pridobivanjem vseh elementov z ustreznimi metodami:
std:: stack <int, std:: list> oStack; // izjava predmeta sklada
za (int i = 0; i <10; i ++) oStack.push (i); // napolnim kup
while (! oStack.empty ()) oStack.pop (); // počisti kup
Vendar ima ta pristop časovno zapletenost, ki je linearno odvisna od števila elementov v kupčku. Zato njegova uporaba ni racionalna.