Mavzu:Sinf shablonlarini yaratish.Shablon tavsifi sintaksisi.
Reja:
1.STL tarkibi.
2.Shablonlar bilan ishlash.
3.Shablon tavsifi va sintaksisi.
1. Biblioteka yadrosi uchta elementdan iborat: konteynerlar, algoritmlar va iteratorlar.
Konteynerlar (containers) – bu boshqa elementlarni saqlovchi ob’ektlar. Masalan, vektor, chiziqli ro‘yxat, to‘plam.
Assotsiativ konteynerlar (associative containers) kalitlar yordamida ularda saqlanadigan qiymatlarni tezkor olish imkonini yaratadi.
Xar 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 ob’ektlar. Ular massiv elementlariga ruxsat oluvchi ko‘rsatkichlar kabi, konteyner ichidagiga ruxsat olish imkoni beradi.
Sinf-konteynerlar STL da quyidagi sinf-konteynerlar aniqlangan:
Asosiy konteynerlar vector dinamk massiv
list chiziqli ro‘yxat
deque ikki tarafli dvustoronnyaya tartib
set to‘plam
multiset xar bir elementi noyob bo‘lishi shart emas to‘plam
map kalit/ qiymat juftlikni saqlash uchun assotsiativ ro‘yxat. Bunda xar bir kalit bitta qiymat bilan bog‘langan.
multimap xar bir kalit bilan ikkita yoki ko‘proq qiymatlar bog‘langan
Xosila konteynerlar stack stek
queue tartib
priority_queue birinchi o‘rindagi tartib
Konstruktorlar Ixtiyoriy sinf-konteyner ko‘rsatilmagan xolda konstruktor va destruktorni nusxalovchi konstruktorga ega.
Masalan, vektor sinf-konteynerning konstruktori va destruktori:
barcha elementlarni o‘chiradi va xotirani bo‘shatadi.
Ixtiyoriy ob’ekt uchun ko‘rsatilmagan xolda konteynerda saqlanuvchi konstruktor mavjud bo‘lishi shart. Undan tashqari, ob’ekt uchun < va == operatorlar aniqlanish lozim.
Iteratorlar Itaratorlar bilan ko‘rsatkichlar kabi ishlash mumkin. Ularga *, inkrement, dekrement operatorlarni qo‘llash mumkin. Iterator tipi sifatida xar xil konteynerlarda aniqlangan iterator tip elon qilinadi.
Itoratorlarning beshta tipi mavjud: