C++ steklar


ULASHISH

C++ stek

Stek bir nechta elementni LIFO deb ataladigan muayyan tartibda saqlaydi.

LIFO — Last in, First Out (oxirgi kirgan birinchi chiqadi) degani. LIFO’ni tasavvur qilish uchun quymoqlar taxlamini ko‘z oldingizga keltiring: quymoqlar ham yuqoridan qo‘yiladi, ham yuqoridan olinadi. Shuning uchun quymoqni olganingizda u doim siz eng oxirgi qo‘ygan quymoq bo‘ladi. Informatika va dasturlashda elementlarni bunday tartibda joylashtirish LIFO deb ataladi.

Vektorlardan farqli ravishda stekdagi elementlarga indeks raqamlari orqali murojaat qilinmaydi. Elementlar yuqoridan qo‘shilib, yuqoridan olib tashlangani uchun faqat stekning eng yuqorisidagi elementga murojaat qilish mumkin.

Stekdan foydalanish uchun <stack> sarlavha faylini qo‘shishingiz kerak:

// Include the stack library #include <stack>

Stek yaratish

Stek yaratish uchun stack kalit so‘zidan foydalaning, burchakli qavslar <> ichida u saqlaydigan qiymatlar tipini, so‘ng stek nomini ko‘rsating, masalan: stack<type> stackName.

// Create a stack of strings called cars stack<string> cars;

Eslatma: Stek e’lon qilingandan keyin uning tipini (misolimizda string) o‘zgartirib bo‘lmaydi.

Eslatma: Vektorlardagidan farqli ravishda stekka e’lon qilish paytida element qo‘shib bo‘lmaydi:

stack<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};

Element qo‘shish

Stekka element qo‘shish uchun uni e’lon qilgandan keyin .push() funksiyasidan foydalaning:

Misol

// Create a stack of strings called cars stack<string> cars; // Add elements to the stack cars.push("Volvo"); cars.push("BMW"); cars.push("Ford"); cars.push("Mazda");

Stek quyidagicha ko‘rinishda bo‘ladi (oxirgi qo‘shilgan element eng yuqoridagi element ekanini unutmang):

Mazda (top element)
Ford
BMW
Volvo


Stek elementlariga murojaat qilish

Massivlar va vektorlardagidek stek elementlariga indeks raqamlari orqali murojaat qilib bo‘lmaydi.

Stekda faqat eng yuqoridagi elementga murojaat qilish mumkin, bu .top() funksiyasi yordamida amalga oshiriladi:

Misol

// Access the top element cout << cars.top();  // Outputs "Mazda"
O‘zingiz sinab ko‘ring »

Eng yuqoridagi elementni o‘zgartirish

Eng yuqoridagi element qiymatini o‘zgartirish uchun ham .top funksiyasidan foydalanishingiz mumkin:

Misol

// Change the value of the top element cars.top() = "Tesla";  // Access the top element cout << cars.top();  // Now outputs "Tesla" instead of "Mazda"
O‘zingiz sinab ko‘ring »

Elementlarni olib tashlash

Stekdan element olib tashlash uchun .pop() funksiyasidan foydalanishingiz mumkin.

Bu stekka oxirgi qo‘shilgan elementni olib tashlaydi:

Misol

// Create a stack of strings called cars stack<string> cars; // Add elements to the stack cars.push("Volvo"); cars.push("BMW"); cars.push("Ford"); cars.push("Mazda"); // Remove the last added element (Mazda) cars.pop(); // Access the top element (Now Ford) cout << cars.top();
O‘zingiz sinab ko‘ring »

Stek o‘lchamini aniqlash

Stekda nechta element borligini bilish uchun .size() funksiyasidan foydalaning:

Misol

cout << cars.size();
O‘zingiz sinab ko‘ring »

Stek bo‘shligini tekshirish

Stek bo‘sh yoki bo‘sh emasligini aniqlash uchun .empty() funksiyasidan foydalaning.

.empty() funksiyasi stek bo‘sh bo‘lsa 1 (true), aks holda 0 (false) qaytaradi:

Misol

stack<string> cars; cout << cars.empty(); // Outputs 1 (The stack is empty)
O‘zingiz sinab ko‘ring »

Misol

stack<string> cars; cars.push("Volvo"); cars.push("BMW"); cars.push("Ford"); cars.push("Mazda"); cout << cars.empty();  // Outputs 0 (not empty)
O‘zingiz sinab ko‘ring »

Steklar va navbatlar

Steklar ko‘pincha navbatlar bilan birga tilga olinadi — bu keyingi sahifada tasvirlangan o‘xshash ma’lumotlar tuzilmasi.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!