|
Ikki aloqali ro‘yxat (ikkilangan ro‘yxat)
|
bet | 21/131 | Sana | 13.05.2024 | Hajmi | 1,83 Mb. | | #228405 |
Bog'liq Tiplarni dinamik tarzdaIkki aloqali ro‘yxat (ikkilangan ro‘yxat) . list> ikki tomonlama iterator orqali T tipdagi elementlarga kirishni taʻminlaydi. Bir aloqali ro‘yxatdan farqli o‘laroq, elementlarni belgilangan pozitsiyadan oldin joylashtirildi (insert, emplace, splice funksiyalari), oxiridan qo‘shish va o‘chirish (push_back, emplace_back, pop_back), va iterator ko‘rsatayotgan elementni o‘chirish (erase) funksiyalari bilan amalga oshiriladi. *_after funksiyasi mavjud emas.
Ikki tomonlama navbat . deque> , maxsus kirish iteratori orqali elementlar uchun kirish imkonini beradi. Faqat ro‘yxati kabi, u samarali qo‘shish va har ikki tomonidan maʻlumotlar olib tashlash imkonini beradi. Indeksga kirish uchun ikkita funksiya ishlatiladi: [] operatori va at(indeks). Birinchisidan farqli o‘laroq, ikkinchisi indeksni tekshiradi va qiymati haqiqiy bo‘lmasa, out_of_range istisnoga murojaat qiladi.
Ikki tomonlama navbat konteyneri uchun ro‘yxatni bir xil tarzda har qanday holatda elementlarni kiritish va o‘chirish imkonini beradi. Lekin ikki tomonlama navbatda bu amallar ular konteyner hajmi, vaqti chiziqli bo‘lishini talab qilishi mumkin. Bundan tashqari, oldindan iteratorga saqlangan elementlarni tartibini kiritish va o‘chirishni buzishi mumkin shuning uchun xotirada saqlangan elementlarning ko‘rsatkichlarini yodda saqlash maqsadga muvofiq (Agar iteratorlar ro‘yxat kabi saqlanayotgan bo‘lsa, elementlarga bo‘lgan ko‘rsatkichlar o‘chirilmaydi).
Dinamik massiv (vektor) . Vektor> elementlarga maxsus kirish iteratori orqali kirishni taʻminlaydi. Deque dan farqli o‘laroq, u kiritish va boshida elementlarni o‘chirish uchun ruxsat bermaydi. Dinamik massiv xotiraning uzluksiz bo‘limida ketma-ket saqlangan elementlarning joylashishini kafolatlaydi, uning manzili data funksiyasi bilan qaytariladi.
Elementlarni qo‘shish va oldindan ajratilgan saqlashni tugatishda elementlar ko‘chiriladigan joyga katta hajmdagi yangi dinamik qator ajratish mumkin. Eski saqlab o‘chiriladi, va barcha saqlangan iteratorlar yo‘qoladi, o‘chirilgan obʻyektlar uchun ko‘rsatkich bo‘lib qoladi.
Dinamik massiv reserve funksiyasi yordamida yetarli hajmda saqlash uchun oldindan massivni tayyorlash imkonini beradi (u ko‘chib o‘tishda elementlarni olib kelishi mumkin). Saqlash hajmini capacity funksiyasi yordamida bilib olishingiz mumkin. shrink_to_fit funksiyasi haqiqiy ishlatiladigan hajmini ajratadi va elementlarni foydalanilmagan xotiradan olib tashlaydi.
|
| |