using AllocForU = type name Alloc::template
rebind::other;
C++da standart kutubxona ( sarlavha fayl bilan) new/new[] va delete/delete[] operatorlarini qo‘llash orqali allocatorni taʻminlaydi.
Bundan model va o‘zingizning allokatorlaringizni yozishda foydalanish mumkin.
Bir bog‘lamli ro‘yxat . forward_list> bir tomonlama iterator orqali T tipdagi elementlarga kirishni taʻminlaydi. Ro‘yxatning tugunlarini yaratish uchun A::rebind orqali yaratilgan allokatorday foydalaniladi. Bir bog‘lamli 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 qo‘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 - ikki tatartiblangan ro‘yxatni bir-biriga birlashtiradi, elementlar ko‘chirilmaydi lekin o‘ngdan chap ro‘yxatga o‘tiladi
Do'stlaringiz bilan baham: |