Dekyu (Deque)
C++ Dekyu
Oldingi sahifada navbatdagi elementlar oxiriga qo'shiladi va oldidan olib tashlanishini o'rgandingiz.
Dekyu (double-ended queue — ikki tomonlama navbat) esa yanada moslashuvchan bo'lib, elementlar ikkala uchidan (oldidan va orqasidan) qo'shilishi va olib tashlanishi mumkin. Shuningdek, elementlarga indeks raqamlari orqali kirish mumkin.
Dekyudan foydalanish uchun <deque> sarlavha faylini import qiling:
MISOL
// Dekyu kutubxonasini import qilish
#include <deque>Dekyu yaratish
Dekyu yaratish uchun deque kalit so'zini ishlating: deque<tur> dekyuNomi.
MISOL
// Satrlarni saqlaydigan cars nomli dekyu yaratish
deque<string> cars;E'lon vaqtida elementlar qo'shish mumkin:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Dekyu elementlarini chop etish
for (string car : cars) {
cout << car << "\n";
}Dekyu elementiga kirish
Dekyu elementiga kvadrat qavslar [] ichidagi indeks raqami orqali kirish mumkin. Dekyular 0 dan boshlab indekslanadi:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cout << cars[0]; // Volvo chiqaradi
cout << cars[1]; // BMW chiqaradi.front() va .back() funksiyalari orqali ham birinchi va oxirgi elementga kirish mumkin:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cout << cars.front();
cout << cars.back();.at() funksiyasi bilan belgilangan indeksdagi elementga kirish:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cout << cars.at(1);
cout << cars.at(2);ESLATMA
.at() funksiyasi ko'pincha kvadrat qavslardan afzal, chunki element chegaradan tashqarida bo'lsa istisno holat tashlaydi.
Dekyu elementini o'zgartirish
Indeks raqami yoki .at() funksiyasi orqali elementni o'zgartirish mumkin:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cars[0] = "Opel";
cout << cars[0]; // Endi Volvo o'rniga Opel chiqaradiDekyu elementlarini qo'shish
.push_front() bilan boshiga va .push_back() bilan oxiriga element qo'shish mumkin:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Boshiga element qo'shish
cars.push_front("Tesla");
// Oxiriga element qo'shish
cars.push_back("VW");Dekyu elementlarini olib tashlash
.pop_front() bilan boshidan va .pop_back() bilan oxiridan element olib tashlash mumkin:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
// Birinchi elementni olib tashlash
cars.pop_front();
// Oxirgi elementni olib tashlash
cars.pop_back();Dekyu hajmi
.size() funksiyasi yordamida dekyudagi elementlar sonini bilish mumkin:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
cout << cars.size(); // 4 chiqaradiDekyu bo'sh yoki yo'qligini tekshirish
.empty() funksiyasi dekyu bo'sh bo'lsa 1 (true), bo'lmasa 0 (false) qaytaradi:
MISOL
deque<string> cars;
cout << cars.empty(); // 1 chiqaradi (dekyu bo'sh)Dekyu bo'ylab tsikl
.size() funksiyasi bilan for tsikli yoki for-each tsikli yordamida dekyu bo'ylab aylanish mumkin:
MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (int i = 0; i < cars.size(); i++) {
cout << cars[i] << "\n";
}MISOL
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
for (string car : cars) {
cout << car << "\n";
}MASLAHAT
Iterator yordamida ham dekyular bo'ylab aylanish mumkin.
