Bu gün tətbiqetmə proqramlaşdırmasında geniş istifadə olunan məlumat strukturlarının növlərindən biri də yığındır. Xüsusiyyəti, elementlərin təşkili prinsipidir, burada onların əlavə edilməsi və çıxarılması yalnız bir dəfə və yalnız "yuxarı" vasitəsilə mümkündür, yəni LIFO prinsipinə görə. Ancaq bəzən bir anda bütün yığını təmizləmək lazımdır.

Zəruri
- - mətn redaktoru və ya IDE;
- - istifadə olunan proqramlaşdırma dilindən tərcüməçi.
Təlimat
Addım 1
Yığın təmizlənməsi üçün xüsusi olaraq hazırlanmış yığın obyektlərində metodlardan istifadə edin. Müxtəlif kitabxanaların və çərçivələrin uyğun siniflərinin əksəriyyətində mövcuddurlar. Məsələn. NET Stack sinfi Clear metoduna malikdir. C # tətbiqinin bir nümunəsi belə görünə bilər:
Stack oStack = yeni Stack (); // bir yığın obyekti yaratmaq
oStack. Push ("000"); // yığını doldurun
oStack. Push ("111");
oStack. Clear (); // yığını silin
Addım 2
Yığın siniflərinin funksionallığının tez-tez qurulduğu konteyner siniflərinin elementlərinin sayını dəyişdirmə üsulları da təmizlənmək üçün istifadə edilə bilər. Yalnız cari element sayını sıfıra endirməlisiniz. Məsələn, Qt şablon sinfi QStack, yenidən ölçülmə metoduna sahib olan QVector şablon sinifindən miras qalır. İstifadəsinə bir nümunə belə ola bilər:
QStack oStack; // yığın obyektinin bəyanatı
for (int i = 0; i <10; i ++) oStack.push (i); // yığını doldurun
oStack.resize (0); // yığını silin
Addım 3
Bir yığın obyektinin təmizlənməsi ümumiyyətlə müvafiq siniflərdə həyata keçirilən təyinat operatoru vasitəsilə həyata keçirilə bilər. Bunu etmək üçün yığının təmizlənəcək obyektinə, standart qurucu tərəfindən yaradılan müvəqqəti bir obyekt təyin edilməlidir. Məsələn, konteyner şablonu sinifləri üçün bir adaptör olan C ++ Standard Library yığını şablonu sinfində sayını özbaşına dəyişdirmək və ya bütün elementləri silmək üçün metodlar yoxdur. Bunu belə təmizləyə bilərsiniz:
std:: stack <int, std:: list> oStack; // yığın obyektinin bəyanatı
for (int i = 0; i <10; i ++) oStack.push (i); // yığını doldurun
oStack = std:: stack
Addım 4
Varsayılan konstruktor tərəfindən yaradılan bir obyekt arqumenti ilə yeni operatoru istifadə edərək kopya qurucusunu çağıraraq yığın obyektini silin:
std:: stack <int, std:: list> oStack; // yığın obyektinin bəyanatı
for (int i = 0; i <10; i ++) oStack.push (i); // yığını doldurun
yeni std:: yığın
Addım 5
Yığın, uyğun metodlardan istifadə edərək bütün elementləri ardıcıl olaraq əldə etməklə təmizlənə bilər:
std:: stack <int, std:: list> oStack; // yığın obyektinin bəyanatı
for (int i = 0; i <10; i ++) oStack.push (i); // yığını doldurun
while (! oStack.empty ()) oStack.pop (); // yığını silin
Bununla birlikdə, bu yanaşma, yığındakı elementlərin sayından xətti olaraq asılı olan bir zaman mürəkkəbliyinə malikdir. Buna görə istifadəsi rasional deyil.