LABORATORIYA ISHI - 9 Mavzu: STL komponentalar va konteynerlar bilan tanishish. Shablonlar standart kutubxonasining tuzilmasi.
Ishdan maqsad: Ushbu laboratoriya ishining maqsadi talabalar STL componentlar mavjudligini va ularning samaradorliklarini baholashni o‘rganishlari kerak. Shu asosda konteyner usullarini qiyosiy tahlil qilishlari, C++ dasturlash tilida vektor bilan ishlashni va ularga oid dasturlar tuzishni o‘zlashtirishlari kerak.
Qo‘yilgan masala: Talabalar topshiriq variantiga mos vectorlar yordamida masalani yechish dasturini yaratish ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi: Tajriba ishi nazariy ma’lumotlarini o‘rganish;
Berilgan topshiriqning algoritmini ishlab chiqish;
Standart shablonlar kutubxonasi (STL) - bu dasturlashning umumiy tuzilmalari va ro'yxatlari, steklari, massivlari va hk kabi funktsiyalarni ta'minlash uchun shablonlar sinflari to'plamihisiblanadi.
STL uchta tarkibiy qismdan iborat:
Konteynerlar
Algoritmlar
Iteratorlar
Ushbu uchta komponent bir-biri bilan sinergiyada birgalikda ishlaydi va turli xil dasturiy echimlarni qo'llab-quvvatlaydi. Algoritm konteynerlarda saqlanadigan operatsiyani bajarish uchun iteratorlardan foydalanadi.
Konteyner - bu xotirada ma'lumotlarni uyushgan tartibda saqlaydigan ob'ekt. STL-dagi konteynerlar shablon sinflari tomonidan amalga oshiriladi va shuning uchun har xil turdagi ma'lumotlarni saqlash uchun ularni osonlikcha o'zgartirish va sozlash mumkin. Konteynerlarda joylashgan ma'lumotlarni qayta ishlash uchun ishlatiladigan protsedura algoritm sifatida belgilanadi. STL boshlang'ich, qidirish, nusxalash, saralash va birlashtirish, nusxalash, saralash va birlashtirish kabi vazifalarni qo'llab-quvvatlash uchun juda ko'p turli xil algoritmlarni o'z ichiga oladi. Algoritmlar shablon funktsiyalari bilan amalga oshiriladi.
Konteynerlar STL uchta toifaga birlashtirilgan o'nta konteynerni belgilaydi.
Vektorlar element kiritilganda yoki o'chirilganda avtomatik ravishda o'lchamlarini o'zgartirish qobiliyatiga ega bo'lgan dinamik massivlar bilan bir xil, ularni saqlash konteyner tomonidan avtomatik ravishda boshqariladi. Vektor elementlari tutashgan omborga joylashtiriladi, shunda ularga iteratorlar yordamida o'tish va o'tish mumkin. Vektorlarda ma'lumotlar oxiriga kiritiladi. Oxirida qo'shish differentsial vaqtni oladi, chunki ba'zida qatorni kengaytirishga ehtiyoj paydo bo'lishi mumkin. Oxirgi elementni olib tashlash faqat doimiy vaqtni oladi, chunki o'lchamlarning o'zgarishi bo'lmaydi.