Ba'zi turdagi asosiy konteynerga oxirgi marta qo'shilgan elementga kirishni cheklash orqali cheklash funksiyasini ta'minlovchi shablon konteyner adapter klassi
Ba'zi turdagi asosiy konteynerga oxirgi marta qo'shilgan elementga kirishni cheklash orqali cheklash funksiyasini ta'minlovchi shablon konteyner adapter klassi. Sinf konteynerda faqat operatsiyalar bajarilishini stackaniq belgilash muhim bo'lganda ishlatiladi .stack
template >
class stack
Type Stackda saqlanadigan elementning ma'lumotlar turi.
Container Stackni amalga oshirish uchun ishlatiladigan asosiy konteyner turi. Standart qiymat sinf hisoblanadi deque.
Izohlar TypeStack obyekti shablonining birinchi parametrida ko'rsatilgan sinf elementlari sinonimdir va ikkinchi shablon parametrida ko'rsatilgan value_typeasosiy konteyner sinfidagi element turiga mos kelishi kerak . ContainerU Typeshunday tayinlangan bo'lishi kerakki, siz ushbu turdagi ob'ektlarni nusxalashingiz va ushbu turdagi o'zgaruvchilarga qiymatlarni belgilashingiz mumkin.
stack konteynerlar uchun mos asosiy sinflar o'z ichiga oladi deque, listsinf va vectorsinf , yoki qo'llab-quvvatlaydi har qanday boshqa ketma-ketlik konteyner backpush_back, va pop_back. Asosiy konteyner klassi konteyner adapteriga o'ralgan bo'lib, u faqat cheklangan ketma-ketlik konteyner a'zosi funktsiyalarini umumiy interfeys sifatida ochib beradi.
Ob'ektlar stackteng bo'ladi, agar sinf elementlari teng Typebo'lsa va kamroq taqqoslansa, agar sinf elementlari Typekamroq taqqoslansa.
Sinf stackoxirgi kirish (LIFO) ma'lumotlar tuzilmasini saqlaydi. Ushbu yondashuvning yaxshi analogi plitalar to'plamidir. Elementlar (plitalar) faqat taglik idishining oxiridagi oxirgi element bo'lgan stackning yuqori qismidan kiritilishi, tekshirilishi yoki olib tashlanishi mumkin. Faqat yuqori elementga kirishni cheklash stacksinfdan foydalanishning sababidir.
Sinfqueue birinchi kirish (FIFO) ma'lumotlar strukturasini qo'llab-quvvatlaydi. Ushbu yondashuvning yaxshi analogi - bu bank xodimiga odamlarning navbati. Elementlar (odamlar) navbatning oxiriga qo'shilishi va navbatning old qismidan olib tashlanishi mumkin. Navbatning boshini ham, oxirini ham
tekshirishingiz mumkin. Shu tarzda faqat old va orqa elementlarga kirishni cheklash queuesinf mo'ynasidan foydalanishning sababidir.
Sinfpriority_queue o'z elementlarini shunday joylashtiradiki, eng katta element har doim yuqori holatda bo'ladi. U elementni kiritishni, shuningdek, yuqori elementni tekshirish va olib tashlashni qo'llab-quvvatlaydi. Ushbu yondashuvning yaxshi analogi yoshi, bo'yi yoki boshqa har qanday mezon bo'yicha buyurtma qilingan odamlarning navbatidir.
Buni qanday qilib LIFO-> birinchi navbatda oxirgi o'ringa qo'yishim mumkin? Buni qilishning oson yo'li bormi? Bu birinchi chiqadigan navbatdagi FIFO-> fifo.
using namespace std;
int main(){
queue q;
cout << "Pushing one two three four\n";
q.push("one");
q.push("two");
q.push("three");
q.push("four");