Nazariy qism Standart shablon sinflar bibliotekasi



Download 498,4 Kb.
Sana19.05.2022
Hajmi498,4 Kb.
#604596
Bog'liq
3-tajriba Dasturlash standart algoritmlar va iteratorlar


Tajriba ishi №3


Mavzu:. Standart algoritmlar va iteratorlar.

Ishning maqsadi: C++ dasturlash tilida standart algoritmlar, iteratorlar bilan ishlash ko’nikmalarini shakllantirish.



Nazariy qism
Standart shablon sinflar bibliotekasi.
Biblioteka yadrosi uchta elementdan iborat: konteynerlar, algoritmlar va iteratorlar. Konteynerlar (containers) – bu boshqa elementlarni saqlovchi obyektlar.
Masalan, vektor, chiziqli ro‘yxat, to‘plam. Assotsiativ konteynerlar (associative containers) kalitlar yordamida ularda saqlanadigan qiymatlarni tezkor olish imkonini yaratadi. Har bir sinf – konteynerida ular bilan ishlash uchun mo‘ljallangan funksiyalar to‘plami aniqlangan. Masalan, ruyxat elementlarni kiritish, chiqarish, va qo‘shish funksiyalarni o‘z ichiga oladi. Algoritmlar (algorithms) konteyner ichidagilar ustidan operatsiyalar bajaradi. Konteyner ichidagilarni initsializatsiyalash, qidirish, saralash va almashtirish uchun algoritmlar mavjud. Ko‘p algoritmlar konteyner ichidagi elementlarni chiziqi ro‘yxatini ifodalaydovchi ketma-ketlik (sequence) bilan ishlash uchun mo‘ljallangan. Iteratorlar (iterators) – bu konteynerga nisbatan ko‘rsatkich sifatida bo‘lgan obyektlar. Ular massiv elementlariga ruxsat oluvchi ko‘rsatkichlar kabi, konteyner ichidagiga ruxsat olish imkoni beradi.

  • vector dinamk massiv

  • list chiziqli ro‘yxat

  • deque ikki tarafli tartib

  • set to‘plam

  • multiset har bir elementi noyob bo‘lishi shart emas to‘plam

  • map kalit/ qiymat juftlikni saqlash uchun assotsiativ ro‘yxat

Bunda har bir kalit bitta qiymat bilan bog‘langan.

  • Multimap har bir kalit bilan ikkita yoki ko‘proq qiymatlar

bog‘langan

  • stack stek

  • queue tartib

  • priority_queue birinchi o‘rindagi tartib

Standart algoritmlar

Ixtiyoriy sinf-konteyner ko‘rsatilmagan holda konstruktor va destruktorni nusxalovchi konstruktorga ega. Ixtiyoriy obyekt uchun ko‘rsatilmagan holda konteynerda saqlanuvchi konstruktor mavjud bo‘lishi shart. Undan tashqari, obyekt uchun < va == operatorlar aniqlanish lozim.


Iteratorlar bilan ko‘rsatkichlar kabi ishlash mumkin. Ularga *, inkrement, dekrement operatorlarni qo‘llash mumkin. Iterator tipi sifatida har xil konteynerlarda aniqlangan iterator tip elon qilinadi.
Iteratorlarning beshta tipi mavjud:
1. Kiritish iteratorlar (input_iterator) tenglik, nomini o‘zgartirish va inkrementa operatsiyalarni qo‘llaydi.
==, !=, *i, ++i, i++, *i++
Kiritish iteratsiyasining maxsus xolati istream_iterator iborat.
2. Chiqarish iteratorlar (output_iterator) o‘zlashtirish operatorning chap tarafidan imkon bo‘lgan isimning o‘zgartirish va inkrementa operatsiyalar qo‘llanadi.
++i, i++, *i=t, *i++=t
Chiqarish iteratsiyasining maxsus xolati ostream_iterator.
3. Bitta yo‘nalishdagi iteratorlar (forward_iterator) kiritish/chiqarish operatsiyalarning barchasini qo‘llaydi, bundan tashqari chegarasiz o‘zlashtirishning imkonini beradi.
==, !=, =, *i, ++i, i++, *i++
4. Ikki yo‘nalishdagi iteratorlar (biderectional_iterator) forward-iteratorlarning barcha xususiyatlariga ega, bundan tashqari, konteynerni ikkita yo‘nalishi bo‘yicha o‘tish imkonini beradigan qo‘shimcha dekrementa (--i, i--, *i--) operatsiyasiga ega.
5. Ixtiyoriy ruxsatga ega bo‘lgan iteratorlar (random_access_iterator) biderectional-iteratorlarning barcha xususiyatlariga ega, bundan tashqari solishtirish va manzil arifmetikasi operatsiyalarni qo‘llaydi.
i+=n, i+n, i-=n, i-n, i1-i2, i[n], i1i2, i1>=i2
Shuningdek, STLda teskari iteratorlar (reverse iterators) qo‘llaniladi. Ketmaketlikni teskari yo‘nalishda o‘tuvchi ikki yo‘nalishli yoki ixtiyoriy ruxsatga ega bo‘lgan iteratorlar teskari iteratoralar bo‘lishi mumkin.


Topshiriqlar
1. Yangi konteynerlar hosil qiling, uni standart funksiyalar yordamida elementlar bilan to’lating va for_each funksiyasi yordamida uni chop qiling;
2. Yangi konteynerlar hosil qiling, uni standart funksiyalar yordamida elementlar bilan to’lating find funksiyasi yordamida amallar bajaring;
3. Yangi konteynerlar hosil qiling, uni standart funksiyalar yordamida elementlar bilan to’lating count funksiyasi yordamida amallar bajaring;
4. Yangi konteynerlar hosil qiling, uni standart funksiyalar yordamida elementlar bilan to’lating equal funksiyasi yordamida amallar bajaring;
5. Yangi konteynerlar hosil qiling, uni standart funksiyalar yordamida elementlar bilan to’lating search funksiyasi yordamida amallar bajaring;
6. Iteratorlardan foydalanib list konteyneri ustida amallar bajaring;
7. Iteratorlardan foydalanib multimap konteyneri ustida amallar bajaring;
8. Iteratorlardan foydalanib vector konteyneri ustida amallar bajaring;
9. Iteratorlardan foydalanib map konteyneri ustida amallar bajaring;
10. Iteratorlardan foydalanib deque konteyneri ustida amallar bajaring
Download 498,4 Kb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish