1. Ro‘yxat (forward list va list); Tasodifiy kirish konteynerlari (deque, vector va array); Statik va dinamik massivlar
Download 42.88 Kb.
|
3-mavzu Chiziqli Konteynerlar OK
for (T x : cr) work(x);
Semantik jihatdan quyidagi fragmentga teng { using std::begin; using std::end; const auto e = end(cr); for (auto p = begin(cr); p != e; ++p) { T x = *p; work(x); } } Bu yerda T tipi konteyner elementlarining tipiga mos kelishi shart emas va auto asosida konstruksiya yoki havolali tip ham bo‘lishi mumkin (eng ko‘p ishlatiladigan variantlar auto& va auto&&). Chiziqli konteynerlarni (array dan boshqa) belgilangan qiymatlardan assign() funksiyasini chaqirib to‘ldirish mumkin (eski qiymalari o‘chiriladi) va resize() funksiyasi bilan o‘lchamlarini (hajmi kamayganda elementlar oxiridan o‘chiriladi va hajmi ortganda, yangi elementlar oxiridan qo‘shiladi) aniqlash mumkin. Konteynerning birinchi elementiga to‘g‘ridan-to‘g‘ri murojaat (tartiblanmagan assotsiativ konteynerlardan tashqari) front() funksiya yordamida amalga oshiriladi. Iteratorlari ikki tomonlama bo‘lgan barcha konteynerlarning oxirgi elementga murojaat uchun back() funksiyasi, shuningdek, teskari yo‘naltirilgan iteratorlar reverse_iterator va const_reverse_iterator funksiyalaridan foydalaniladi. Tegishli intervallarni rbegin(), rend() va crbegin(), crend() funksiyalari yordamida olish mumkin. Barcha konteynerlarni tenglik va tengsizlik uchun taqqoslash mumkin va ularning mazmunini swap() funksiyasi yordamida almashtirish mumkin. Chegaralanmagan assotsiativlardan tashqari barcha konteynerlarni <, <= , > va >= operatorlari leksikografik jihatdan taqqoslash mumkin. Standart konteynerlarda dinamik xotirani boshqarish uchun allocator ajratuvchi maxsus sinflardan foydalanadi. Allocator xotirani boshqarishning minimal birligini belgilaydigan va bir qator yordamchi taʻriflarni taqdim etadigan element tipiga bog‘liqdir. Bu vazifa to‘rt asosiy funksiyalari yordamida amalga oshiriladi: elementlari berilgan qator uchun xotira ajratishda allocate, xotirani tozalash uchun deallocate, konstruktor qurish uchun construct, va destructor uchun destroy. Allokator boshqa tipdagi elementlar uchun analog allocator olishda rebind meta funksiyasini amalga oshirishi kerak. Alloc – elementlarining aniq tiplari uchun allocator berilgan bo‘lsin. U tipli elementlar uchun uning allokatorini olish variant quyidagi dastur fragmentida keltirilgan. Download 42.88 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling