Një nga llojet e strukturave të të dhënave që përdoren gjerësisht sot në programimin e aplikacioneve është stack. Veçori e tij është parimi i organizimit të elementeve, në të cilin shtimi dhe heqja e tyre është e mundur vetëm një në një kohë dhe vetëm përmes "majës", domethënë, sipas parimit LIFO. Por ndonjëherë është e nevojshme të pastroni të gjithë pirgun në të njëjtën kohë.

E nevojshme
- - redaktues teksti ose IDE;
- - një përkthyes nga gjuha e përdorur e programimit.
Udhëzimet
Hapi 1
Përdorni metoda në objektet e pirgut që janë krijuar posaçërisht për të pastruar pirgun. Ato janë të pranishme në shumicën e klasave përkatëse të bibliotekave dhe kornizave të ndryshme. Për shembull, klasa. NET Stack ka një metodë Clear. Një shembull i aplikimit të tij në C # mund të duket kështu:
Stack oStack = Stack i ri (); // krijoni një objekt pirg
oStack. Push ("000"); // mbushni pirgun
oStack. Push ("111");
oStack. Clear (); // pastroni pirgun
Hapi 2
Metodat për ndryshimin e numrit të elementeve të klasave të kontejnerëve, mbi të cilat shpesh ndërtohet funksionaliteti i klasave të pirgut, gjithashtu mund të përdoren për pastrim. Thjesht duhet të zvogëloni numrin aktual të elementeve në zero. Për shembull, klasa e modelit Qt QStack trashëgon nga klasa e modelit QVector, e cila ka një metodë të ndryshimit të madhësisë. Një shembull i përdorimit të tij mund të jetë i tillë:
QStack oStack; // deklarimi i objektit të pirgut
për (int i = 0; i <10; i ++) oStack.push (i); // mbushni pirgun
oStack.resize (0); // pastroni pirgun
Hapi 3
Pastrimi i një objekti pirg zakonisht mund të bëhet përmes operatorit të caktimit, i cili shpesh zbatohet në klasat përkatëse. Për ta bërë këtë, objektit të pirgut që duhet pastruar duhet t'i caktohet një objekt i përkohshëm i krijuar nga konstruktori i paracaktuar. Për shembull, klasa e shabllonit të Bibliotekës Standarde C ++, e cila është një përshtatës për klasat e shabllonizuara me kontejner, nuk ka metoda për ndryshimin arbitrar të numrit ose heqjen e të gjithë elementeve. Mund ta pastroni kështu:
std:: pirg <int, std:: listë> oStack; // deklarimi i objektit të pirgut
për (int i = 0; i <10; i ++) oStack.push (i); // mbushni pirgun
oStack = std:: pirg
Hapi 4
Pastroni objektin e pirgut duke thirrur konstruktorin e kopjimit duke përdorur operatorin e ri me një argument të objektit të krijuar nga konstruktori i paracaktuar:
std:: pirg <int, std:: listë> oStack; // deklarimi i objektit të pirgut
për (int i = 0; i <10; i ++) oStack.push (i); // mbushni pirgun
std i ri:: pirg
Hapi 5
Stiva mund të pastrohet duke rikuperuar sekuencialisht të gjithë elementët duke përdorur metodat e duhura:
std:: pirg <int, std:: listë> oStack; // deklarimi i objektit të pirgut
për (int i = 0; i <10; i ++) oStack.push (i); // mbushni pirgun
ndërsa (! oStack.empty ()) oStack.pop (); // pastroni pirgun
Sidoqoftë, kjo qasje ka një kompleksitet kohor që varet në mënyrë lineare nga numri i elementeve në pirg. Prandaj, përdorimi i tij nuk është racional.