-MA’RUZA 
MAVZU: Konteynerlar (Kollektsiyalar)

2-MA’RUZA
MAVZU: Konteynerlar (Kollektsiyalar)
Reja:
1. STL kutubxonalari.
2. Konteyner sinflar.
3. Chiziqli konteynerlar (array, vector, deque, list, forward_list).
Kalit so’zlar: STL kutubxonasi, to‘plam, shablon, vector, list, map, set, multimap, multiset, string, wstring, strstream, satrli oqim, iterator, dinamik maʻlumotlar tuzilmasi, pridekat, konteyner sinflar, ketma-ket konteynerlar, chiziqli konreynerlar (array, vector, deque, list, forward_list), bir aloqali ro‘yxat , ikki aloqali ro‘yxat (ikkilangan ro‘yxat) , ikki tomonlama navbat , dinamik massiv (vektor) , statik massiv < array>, allocator.
Dasturlash texnologiyalarining rivjlanishi dasturlash tillarini ishlab chiqaruvchilar oldiga juda jiddiy masallarni paydo qilmoqda. Shulardan biri bu dasturlash tillari uchun turli xil to‘plamlar bilan ishlashdir. Masalan, xayotdan olib qaraydigan bo‘lsak, barcha narsalar qandaydir to‘plam, ammo qonuniyati har xil. Bu to‘plamlarni qanday dasturlash kerak degan muammo paydo bo‘ladi. Shuning uchun barcha obʻyektga yo‘naltirilgan dasturlash tillarida STL, yaʻni standart shablonlar kutubxonasi tushunchasi kiritilgan. STL (Standard Template Library) kutubxonalari, to‘plam turlari, xususiyatlari, usullari va funksiyalar, konteyner va iteratorlar bo‘yicha nazariy materiallarni keltiramiz.
STL (Standard Template Library) kutubxonalari. Shablon mexanizmlari C++ kompilyatoriga moslab qurilgan bo‘lib, dasturchilarga umumiy dasturlash yordamida dastur fragmentlarini qisqartirishga imkon beradi. Tabiiyki, bunday mexanizmlarni amalga oshiruvchi standart kutubxonalar ham mavjud. Bugungi kunda C++ dasturlash tilida eng samarali STL kutubxonasi hisoblanadi.
STL kutubxonasining ko‘plab tatbiqlari mavjud bo‘lib, ularning har biri aniq standart doirasida yaratilgan bo‘lsa - da, o‘z kengaytmalariga ega. Ammo bunday yondashuvning bir kamchiligi bor: dastur fragmentini har doim turli kompilyatorlar bilan bir xil tarzda ishlamaydi. Shuning uchun, dasturchi qanchalik mohirlik bilan kutubxonani yaratsa va foydalansa, o‘ziga xos bajarilishini tushunsa ham, imkon qadar anʻanaviy usullardan foydalanishni tavsiya qilamiz.
C++ dasturlash tilining kutubxonalaridan eng mashhur to‘plamlarni ko‘rib chiqaylik. Ularning har biri muhim vazifalarni hal qilinishi mumkin doirasi uchun o‘z shablon parametrlariga ega.
To‘plamlarni dastur fragmentida ishlatish uchun quyidagi fragmentdan foydalaniladi.
Bunda T – to‘plamning nomi.
Odatda quyidagi to‘plamlar ko‘p ishlatiladi.
vector – elementlar to‘plami, o‘lchamini o‘zgartish kerak bo‘lgan massivda saqlanadigan elementlar to‘plami (odatda ortib boradigan); Dasturga ulanish uslubi:
list – elementlar to‘plami, elementlarni ikki tomonlama bog‘langan ro‘yxat sifatida saqlaydigan to‘plam; Dasturga ulanish uslubi:
map – elementlar to‘plami, har bir elementi shakli juftlikda saqlanadigan to‘plam, bu oddiy bir juftlik juftligi (har bir kalit bitta qiymati mos keladi). Kalit –taqqoslash amali uchun qiymatini tavsiflovchi maʻlum bir qiymati. Juftlikda kalit tez qidirishni amalga oshirish imkonini beradi, kalit asosida tartiblashtirilgan shaklida saqlanadi. Tartiblashni amalga oshirish uchun oldindan tashkil qilish qonuniyatini aniqlab olish kerak. Dasturga ulanish uslubi:
set – elementlar to‘plami, faqat kalitlarning qiymati bo‘yicha tartiblangan to‘plamidir, yaʻni taqqoslash amali qo‘llaniladigan, ammo takrorlanmaydigan qiymatlar — har bir kalit to‘plamda (inglizcha set-to‘plam degan maʻnoni beradi) faqat bir marta foydalaniladi; Dasturga ulanish uslubi:
|