Bugungi kunda amaliy dasturlashda keng qo'llaniladigan ma'lumotlar tuzilmalarining turlaridan biri bu stek. Uning o'ziga xos xususiyati - bu elementlarni tashkil qilish printsipi, unda ularni qo'shish va olib tashlash faqat bir vaqtning o'zida va faqat "yuqori" orqali, ya'ni LIFO printsipiga muvofiq amalga oshiriladi. Ammo ba'zida bir vaqtning o'zida butun to'plamni tozalash kerak bo'ladi.

Kerakli
- - matn muharriri yoki IDE;
- - ishlatilgan dasturlash tilidan tarjimon.
Ko'rsatmalar
1-qadam
Stakni tozalash uchun maxsus ishlab chiqilgan stack ob'ektlarida usullardan foydalaning. Ular turli kutubxonalar va ramkalarning tegishli sinflarining ko'pchiligida mavjud. Masalan. NET Stack sinfida Clear usuli mavjud. C # dasturidagi misol quyidagi ko'rinishga ega bo'lishi mumkin:
Stack oStack = yangi Stack (); // stack ob'ektini yaratish
oStack. Push ("000"); // to'plamni to'ldiring
oStack. Push ("111");
oStack. Clear (); // to'plamni tozalash
2-qadam
Stek sinflarining funktsional imkoniyatlari tez-tez quriladigan konteyner sinflari elementlari sonini o'zgartirish usullari ham tozalash uchun ishlatilishi mumkin. Siz faqat joriy elementlarning sonini nolga kamaytirishingiz kerak. Masalan, QSt shablonlari klassi QStack QVector shablon sinfidan meros qilib oladi, bu o'lchamlarni o'zgartirish uslubiga ega. Uni ishlatishning misoli quyidagicha bo'lishi mumkin:
QStack oStack; // stack ob'ektining deklaratsiyasi
for (int i = 0; i <10; i ++) oStack.push (i); // to'plamni to'ldiring
oStack.resize (0); // to'plamni tozalash
3-qadam
Stek ob'ektini tozalash odatda tegishli sinflarda tez-tez bajariladigan tayinlash operatori orqali amalga oshirilishi mumkin. Buning uchun stekning tozalanadigan ob'ektiga sukut bo'yicha konstruktor tomonidan yaratilgan vaqtinchalik ob'ekt berilishi kerak. Masalan, konteyner shablonlari uchun adapter bo'lgan C ++ Standard Library stack andozalar sinfida raqamni o'zboshimchalik bilan o'zgartirish yoki barcha elementlarni olib tashlash usullari mavjud emas. Siz buni quyidagicha tozalashingiz mumkin:
std:: stack <int, std:: list> oStack; // stack ob'ektining deklaratsiyasi
for (int i = 0; i <10; i ++) oStack.push (i); // to'plamni to'ldiring
oStack = std:: stack
4-qadam
Standart operator tomonidan yaratilgan ob'ekt argumenti bilan yangi operator yordamida nusxa ko'chirish konstruktorini chaqirish orqali stack ob'ektini tozalang:
std:: stack <int, std:: list> oStack; // stack ob'ektining deklaratsiyasi
for (int i = 0; i <10; i ++) oStack.push (i); // to'plamni to'ldiring
yangi std:: stack
5-qadam
Tegishli usullardan foydalangan holda barcha elementlarni ketma-ket olish orqali to'plamni tozalash mumkin:
std:: stack <int, std:: list> oStack; // stack ob'ektining deklaratsiyasi
for (int i = 0; i <10; i ++) oStack.push (i); // to'plamni to'ldiring
while (! oStack.empty ()) oStack.pop (); // to'plamni tozalash
Biroq, bu yondashuv vaqt murakkabligiga ega, bu chiziqli ravishda stekdagi elementlar soniga bog'liq. Shuning uchun uni ishlatish oqilona emas.