Stl (Standard Template Library) kutubxonalari bilan tanishib, uning
Download 0.79 Mb. Pdf ko'rish
|
2-Ma\'ruza matni
- Bu sahifa navigatsiya:
- Assotsiativ konteynerlar
Ketma-ket
konteynerlar. Ular uzluksiz ketma-ketlikda o‘xshash miqdorlarning chekli sonini saqlashni taʻminlaydi. Konteynerlar sifatida vektor ( vector), ikki tomonlama navbat (deque), ro‘yxat (list) va bir aloqali ro‘yxati ( forward_list), shuningdek konteyner variantlar asosida adapterlar, stek (stack), navbat ( queue) va ustuvorlik bilan navbat (priority_queue) sinflarini o‘z ichiga oladi. Massiv ham amallar bilan cheklangan holda konteynerning yana bir turidir. Konteynerning har bir turi maʻlumotlar ustida o‘z amallar to‘plamini taʻminlaydi. Siz tanlagan konteyner turi dasturdagi maʻlumotlar bilan nima qilishni xohlashingizga bog‘liq. Masalan, agar ketma-ketlik o‘rtasida maʻlumotlar tez - tez joylashtirish va o‘chirish kerak bo‘lsa, ro‘yxatlardan foydalanish kerak, maʻlumotlarni oxirida yoki boshida, birinchi navbatda joylatrish kerak bo‘lsa, ikki tomonlama navbatdan foydalanish maqsadga muvofiq. Assotsiativ konteynerlar. Assotsiativ konteynerlar asosiy maʻlumotlarga kalitlar asosida tezkor murojaat qilishni taʻminlaydi. Bu konteynerlar muvozanatli daraxtlarga asoslangan. Assotsiativ konteynerlarning besh turi mavjud: lug‘atlar (map), ko‘p lug‘atlar (multi) (multimap), to‘plamlar (set), multi to‘plamlar (multiset) va bitli to‘plam (bitset). Dasturchi standart kutubxonada mavjud bo‘lgan sinflarga asoslanib o‘z konteyner sinflarini yaratishi mumkin. Bunga kirishishdan oldin muhim tushunchani bilishinggiz shart, yaʻni STL kutubxonasining fundamental tushunchasi bu shablondir Barcha konteyner sinflari standartlashtirilgan interfeysi bilan taʻminlangan. Turli konteynerlar uchun bir xil amallarning maʻnosi bir xil bo‘lishi tabiiydir. Asosiy amallar konteynerlarning barcha turlari uchun qo‘llaniladi. Standart esa faqat konteyner interfeysini belgilaydi, shuning uchun turli xil dasturlar samaradorlikda katta farq qilishi mumkin. Barcha konteynerlar o‘z xotirasini o‘zi boshqaradi, shuning uchun dasturchi bu haqida o‘ylashning hojati yo‘q. Deyarli har qanday konteynerlarning quyidagi xususiyatlari bor: 2.2-jadval. Konteyner xususiyatlari. № Xususiyat nomi mazmuni 1 value_type Konteyner elementining tipi 2 size_type Elementlar indeksining tipi 3 iterator Iterator 4 const_iterator O‘zgarmas iterator 5 reverse_iterator Teskari iterator 6 const_reverse_iterator O‘zgarmas teskari iterator 7 reference Elementga havola 8 const_reference O‘zgarmas elementga havola 9 key_type Kalit tipi (assotsiativ konteynerlar uchun) 10 key_compare Taqqoslash mezoni (assotsiativ konteynerlar uchun) Iterator bir element uchun ko‘rsatkichga ekvivalentidir. Ular konteynerlarni to‘g‘ri yoki teskari yo‘nalishda ko‘rish uchun ishlatiladi. Iteratordan talab qilinadigan barcha amallar konteyner elementiga murojaat qilish va uning keyingi elementiga o‘tish amalini amalga oshirishdir. Konteynerlarning elementlarining qiymatlari o‘zgarmaganda o‘zgarmas iteratorlardan foydalaniladi. Iteratorlar yordamida haqiqiy maʻlumotlar tiplari haqida o‘ylamasdan, konteyner elementlarga murojaat qilish uchun foydalanish mumkin. Buning uchun, har bir konteyner quyidagi 2.3-jadvalda keltirilgan bir necha usullardan foydalanishni tavsiya qilinadi. Har bir konteyner uchun bu tiplar va usullarni, ularni realizatsiyasini amalga oshirishga bog‘liq tarzda belgilanadi. Shuningdek, ixtiyoriy konteynerlarda ularning hajmi haqida maʻlumot olish uchun usullari mavjud: size() – elementlar soni; max_size() – konreynerning maksimal o‘lchami (1 miliard ta element uchun); empty() – mantiqiy usuli, konteyner bo‘shligini tekshiradi; Zaruriyat bo‘lganda dasturchi konteynerning maydonlari va usullari ketma-ket o‘zlashtirib boraveradi. Biz ham zaruriyat tug‘ilganda foydalanamiz. 2.3-jadval. Konteyner sinflarning umumiy usullari. № Usullar Izoh 1 iterator begin() const_iterator begin () const Birinchi elementni ko‘rsatadi 2 iterator end() const_iterator end () const Oxirgisidan keyingi elementni ko‘rsatadi 3 reverse_iterator rbegin() const_reverse_iterator rbegin () const Teskari ketma-ketlikda birinchi elementni ko‘rsatadi 4 reverse_iterator rend() const_reverse_iterator rend () const Teskari ketma-ketlikda oxirgisidan keyingi elementni ko‘rsatadi Download 0.79 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling