Chiziqli konreynerlar (array, vector, deque, list, forward list)


Download 0.62 Mb.
Pdf ko'rish
bet2/4
Sana21.04.2023
Hajmi0.62 Mb.
#1369410
1   2   3   4
Bog'liq
w7SNJjWqKNvv4ApnEgt7btQ7Zr1HauLnnWEaFkms

Bir aloqali 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 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:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling