Stl (Standard Template Library) kutubxonalari bilan tanishib, uning


Download 0.79 Mb.
Pdf ko'rish
bet7/11
Sana06.05.2023
Hajmi0.79 Mb.
#1435570
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
2-Ma\'ruza matni

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 

value_type 
Konteyner elementining tipi 

size_type 
Elementlar indeksining tipi 

iterator 
Iterator

const_iterator 
O‘zgarmas iterator 

reverse_iterator 
Teskari iterator 

const_reverse_iterator O‘zgarmas teskari iterator 

reference 
Elementga havola 

const_reference 
O‘zgarmas elementga havola 

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 

iterator begin() 
const_iterator begin () 
const 
Birinchi elementni ko‘rsatadi 

iterator end() 
const_iterator end () 
const 
Oxirgisidan keyingi elementni ko‘rsatadi 

reverse_iterator 
rbegin() 
const_reverse_iterator 
rbegin () const 
Teskari ketma-ketlikda birinchi elementni 
ko‘rsatadi

reverse_iterator rend() 
const_reverse_iterator 
rend () const 
Teskari 
ketma-ketlikda 
oxirgisidan 
keyingi elementni ko‘rsatadi 

Download 0.79 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




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