C++ navbatlar


ULASHISH

C++ navbat

Navbat bir nechta elementni FIFO deb ataladigan muayyan tartibda saqlaydi.

FIFO — First in, First Out (birinchi kirgan birinchi chiqadi) degani. FIFO’ni tasavvur qilish uchun navbatni supermarketda navbatda turgan odamlar deb o‘ylang. Navbatga birinchi turgan kishi birinchi bo‘lib to‘lov qilib, supermarketdan chiqib keta oladi. Informatika va dasturlashda elementlarni bunday tartibda joylashtirish FIFO deb ataladi.

Vektorlardan farqli ravishda navbatdagi elementlarga indeks raqamlari orqali murojaat qilinmaydi. Navbat elementlari oxiriga qo‘shilib, oldidan olib tashlangani uchun faqat old yoki orqa tomondagi elementga murojaat qilish mumkin.

Navbatdan foydalanish uchun <queue> sarlavha faylini qo‘shishingiz kerak:

// Include the queue library #include <queue>

Navbat yaratish

Navbat yaratish uchun queue kalit so‘zidan foydalaning, burchakli qavslar <> ichida u saqlaydigan qiymatlar tipini, so‘ng navbat nomini ko‘rsating, masalan: queue<type> queueName.

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

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

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

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

Element qo‘shish

Navbatga element qo‘shish uchun uni e’lon qilgandan keyin .push() funksiyasidan foydalanishingiz mumkin.

.push() funksiyasi elementni navbat oxiriga qo‘shadi:

Misol

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

Navbat quyidagicha ko‘rinishda bo‘ladi:

Volvo (front (first) element)
BMW
Ford
Mazda (back (last) element)


Navbat elementlariga murojaat qilish

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

Navbatda faqat old yoki orqa tomondagi elementga mos ravishda .front() va .back() yordamida murojaat qilish mumkin:

Misol

// Access the front element (first and oldest) cout << cars.front();  // Outputs "Volvo" // Access the back element (last and newest) cout << cars.back();  // Outputs "Mazda"
O‘zingiz sinab ko‘ring »

Old va orqa elementlarni o‘zgartirish

Old va orqa elementlar qiymatini o‘zgartirish uchun ham .front va .back funksiyalaridan foydalanishingiz mumkin:

Misol

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

Elementlarni olib tashlash

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

Bu old tomondagi elementni (navbatga birinchi, ya’ni eng avval qo‘shilgan elementni) olib tashlaydi:

Misol

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

Navbat o‘lchamini aniqlash

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

Misol

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

Navbat bo‘shligini tekshirish

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

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

Misol

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

Misol

queue<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

Navbatlar ko‘pincha steklar bilan birga tilga olinadi — bu oldingi sahifada tasvirlangan o‘xshash ma’lumotlar tuzilmasi.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!