Cozy Theme Presentation
Download 78.46 Kb. Pdf ko'rish
|
Dasturlash mustaqil ish D.Maloxat
- Bu sahifa navigatsiya:
- Statik massiv
- Dinamik massiv (vektor)
- Ikki tomonlama navbat
- Ikki aloqali ro‘yxat (ikkilangan ro‘yxat) .
- Bir aloqali ro‘yxat
Chiziqli konteynerlar (array, vector, deque, list, forward_list) Dasturlash fanidan Mustaqil ish 913-22 talabasi Durdibayeva Maloxat Chiziqli konreynerlar (array, vector, deque, list, forward_list). Standart konteynerlarni ikkita katta guruhga chiziqli va assotsiativ konteynerlarga bo‘lishini bilamiz. O‘z navbatida chiziqli konteynerlarni bog‘langan ro‘yxat (forward_list va list) va tasodifiy kirish konteynerlariga (ekrin konteyner deb ham yuritiladi) (deque, vector va array) bo‘linadi. Assotsiativ konteynerlar quyidagi variantlarning kombinatsiyasi bo‘lgan sakkizta konteyner bilan ifodalanadi (tegishli standart sinflar nomlarining qavslar ichida beriladi): to‘plam (*set) yoki lug‘at (*map), elementlarni takrorlashga imkon beruvchi (*multi*) yoki ruxsat bermaydigan, tartibga solingan solinmagan (unordered*). Statik massiv < array>. array imkonini beradi va statik array T[N] to‘plami hisoblanadi, kerakli manzili data funksiyasi tomonidan olinishi mumkin. T[N] massivdan farqli ravishda array ko‘chirilishi (qiymat bo‘yicha funksiyalarga o‘tishi) mumkin bo‘lgan va qiymatlari avtomatik ravishda ko‘rsatgichlarga aylantirilmaydigan to‘la huquqli tipdir. Dinamik massiv (vektor) 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. Ikki tomonlama navbat 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 aloqali ro‘yxat (ikkilangan ro‘yxat)
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. 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. #include "stdafx.h" #include #include #include #include #include // konstruktor agregat boshlang'ichni ishlatadi std: :array std: :array‹int, 3> a2 = {1, 2, 3}; // tayinlash operatsiyalari bundan mustasno std::array // umumlashtirilgan algoritmlar qo'llab-quvvatlanadi std::sort(al.begin(), al.end()); std::reverse_copy(a2.begin(), a2.end(), std::ostream iterator // go'llab-quvvatlanadigan gatorga go'yildi std::cout< getchar); } array sinfi uchun qayta yuklamagan operatorlar Download 78.46 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling