Ինչպես մաքրել բուրգը

Բովանդակություն:

Ինչպես մաքրել բուրգը
Ինչպես մաքրել բուրգը

Video: Ինչպես մաքրել բուրգը

Video: Ինչպես մաքրել բուրգը
Video: КРАСНАЯ ИКРА!Как дома готовить настоящую икру//Կարմիր Ձկնկիթ,ինչպես տանը պատրաստել իսկական ձկնկիթ 2024, Նոյեմբեր
Anonim

Տվյալների կառուցվածքների տեսակներից մեկը, որն այսօր լայնորեն օգտագործվում է կիրառական ծրագրավորման մեջ, բուրգն է: Դրա առանձնահատկությունը տարրերի կազմակերպման սկզբունքն է, որում դրանց ավելացումը և հեռացումը հնարավոր է միանգամից միայն մեկ և միայն «վերևի» միջոցով, այսինքն `համաձայն LIFO սկզբունքի: Բայց երբեմն անհրաժեշտ է միանգամից մաքրել ամբողջ դեղը:

Ինչպես մաքրել բուրգը
Ինչպես մաքրել բուրգը

Անհրաժեշտ է

  • - տեքստի խմբագիր կամ IDE;
  • - օգտագործված ծրագրավորման լեզվից թարգմանիչ:

Հրահանգներ

Քայլ 1

Դեղի օբյեկտների վրա օգտագործեք մեթոդներ, որոնք հատուկ նախագծված են տուփը մաքրելու համար: Դրանք առկա են տարբեր գրադարանների և շրջանակների համապատասխան դասերի մեծ մասում: Օրինակ,. NET Stack դասը ունի հստակ մեթոդ: C # - ում դրա կիրառման օրինակը կարող է նման լինել հետևյալով.

Stack oStack = նոր Stack (); // ստեղծել stack օբյեկտ

oStack. Push («000»); // լցնել բուրգը

oStack. Push («111»);

oStack. Clear (); // մաքրել բուրգը

Քայլ 2

Մաքրման համար կարող են օգտագործվել նաև տարաների դասերի տարրերի քանակի փոփոխման մեթոդները, որոնց վրա հաճախ կառուցված են բուրգերի դասերի ֆունկցիոնալությունը: Պարզապես անհրաժեշտ է տարրերի ներկայիս քանակը հասցնել զրոյի: Օրինակ, Qt կաղապարի դասը QStack ժառանգում է QVector կաղապարի դասից, որն ունի չափափոխման մեթոդ: Դրա օգտագործման օրինակ կարող է լինել այսպիսին.

QStack oStack; // դեղի օբյեկտի հայտարարում

համար (int i = 0; i <10; i ++) oStack.push (i); // լցնել բուրգը

oStack.resize (0); // մաքրել բուրգը

Քայլ 3

Դեղ օբյեկտի մաքրումը սովորաբար կարող է կատարվել նշանակման օպերատորի միջոցով, որը հաճախ իրականացվում է համապատասխան դասարաններում: Դա անելու համար մաքրման ենթակա դեղի օբյեկտին պետք է նշանակվի ժամանակավոր օբյեկտ, որը ստեղծվել է լռելյայն կոնստրուկտորի կողմից: Օրինակ, C ++ Standard Library stack templates դասը, որը կոնտեյներների ձևավորված դասերի ադապտեր է, չունի համարը կամայականորեն փոխելու կամ բոլոր տարրերը հեռացնելու մեթոդներ: Կարող եք մաքրել այսպես.

std:: stack <int, std:: list> oStack; // դեղի օբյեկտի հայտարարում

համար (int i = 0; i <10; i ++) oStack.push (i); // լցնել բուրգը

oStack = std:: բուրգ(); // մաքրել բուրգ

Քայլ 4

Մաքրել բույսի օբյեկտը `զանգահարելով կրկնօրինակման կոնստրուկտորին` օգտագործելով նոր օպերատոր `լռելյայն կոնստրուկտորի կողմից ստեղծված օբյեկտի արգումենտով.

std:: stack <int, std:: list> oStack; // դեղի օբյեկտի հայտարարում

համար (int i = 0; i <10; i ++) oStack.push (i); // լցնել բուրգը

նոր std:: բուրգ(oStack); // մաքրել բուրգ

Քայլ 5

Բուրգը կարող է մաքրվել `հետևաբար բոլոր տարրերը հետ վերցնելով համապատասխան մեթոդներով.

std:: stack <int, std:: list> oStack; // դեղի օբյեկտի հայտարարում

համար (int i = 0; i <10; i ++) oStack.push (i); // լցնել բուրգը

while (! oStack.empty ()) oStack.pop (); // մաքրել բուրգը

Այնուամենայնիվ, այս մոտեցումն ունի ժամանակի բարդություն, որը գծայինորեն կախված է տուփի տարրերի քանակից: Հետեւաբար, դրա օգտագործումը ռացիոնալ չէ:

Խորհուրդ ենք տալիս: