Chiziqli konreynerlar (array, vector, deque, list, forward list)
Download 0.62 Mb. Pdf ko'rish
|
w7SNJjWqKNvv4ApnEgt7btQ7Zr1HauLnnWEaFkms
Bir aloqali ro‘yxat tomonlama iterator orqali T tipdagi elementlarga kirishni taʻminlaydi. Ro‘yxatning tugunlarini yaratish uchun A::rebind orqali yaratilgan allokatorday foydalaniladi. Bir aloqali ro‘yxatning o‘ziga xosligi shundaki, faqat belgilangan joriy tugundan keyin elementlarni qo‘shish va o‘chirish mumkin: insert_after - element qo‘shish. emplace_after – yangi element yaratish. Bunda belgilangan parametrlar uchun konstruktor chaqiriladi. erase_after - element o‘chirish. Birinchi elementdan oldin degan ko‘shimcha aniqlangan pozitsiya mavjud. Bu before_begin va cbefore_begin (const_iterator qaytaruvchilar uchun variant) funksiyalari yordamida bajariladi. Shuningdek, fl.push_front(item) funksiyasidan foydalanib, elementlarni oldindan joylashtirish mumkin (yuqoridagiga ekvivalent), masalan, quyidagicha dastur fragmenti: fl.insert_after(fl.before_begin(), item) Konstruktorga har qanday parametrlarni joylashtirish uchun fl.emplace_front(...) funksiyasi ishlatiladi. Bunga ekvivalent sifatida quyidagi dastur fragmentini yozish mumkin: fl.emplace_after(fl.before_begin(), ...) pop_front funksiyasi ro‘yxatdan birinchi elementni o‘chiradi. C++ standart kutubxonasida ro‘yxat konteynerlar xususiyati uchun samarali bo‘lgan amallarni bajarishga faqat iteratorlarda foydalanishga ishonchsizligi yuqori darajali amallarni qo‘llab-quvvatlash hisoblanadi: merge - ikkita tartiblangan ro‘yxatni bir-biriga birlashtiradi, elementlar ko‘chirilmaydi lekin o‘ngdan chap ro‘yxatga o‘tiladi splice_after - berilgan ro‘yxatni ko‘rsatilgan elementdan keyin joylashtiradi. remove – berilgan elementga teng bo‘lgan barcha elementlarni o‘chiradi. remove – berilgan pridikat asosida barcha elementlarni o‘chiradi. reverse – elementlarni tartibiga murojaat qiladi. unique - barcha ketma-ket dublikatlarni o‘chiradi. sort - ro‘yxatni joyida tartiblaydi. Umuman olganda, bu funksiyalar qandaydir standart algoritmlarga o‘xshaydi, lekin juda tez va qulay ishlaydi. Ularga murojaat qilish uchun umumiy ruxsat olish kerak, masalan, sort() funksiyasi uchun std::sort(from, to). Ammo, tasodifiy kirish iteratorlari kabi talab qilingan ro‘yxatlar uchun amal qilmaydi. Download 0.62 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling