Nazariy qism 5-Amaliy mashg’ulot stl komponentalari va konteynerlar bilan tanishish. Shablonlar standart kutubxonasining tuzilmasi. Foydalanuvchining shablonlari


Download 0.66 Mb.
Sana03.02.2023
Hajmi0.66 Mb.
#1153708
Bog'liq
123 Ashuraliyev Ilg\'or


NAZARIY QISM
5-Amaliy mashg’ulot
STL komponentalari va konteynerlar bilan tanishish. Shablonlar standart kutubxonasining tuzilmasi. Foydalanuvchining shablonlari
STL-standart andazalar kutubxonasi bo’lib(STL) - bu dasturlashning umumiy tuzilmalari va ro'yxatlari, steklari, massivlari va hk kabi funktsiyalarni ta'minlash uchun shablonlar sinflari to'plami hisoblanadi.
STL uchta tarkibiy qismdan iborat:

  • Konteynerlar

  • Algoritmlar

  • Iteratorlar

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.
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.
begin () - Vektordagi birinchi elementga ishora qiluvchi iteratorni qaytaradi
end () - Vektordagi oxirgi elementga ishora qiluvchi iteratorni qaytaradi



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.
rend () - Vektordagi birinchi elementdan oldingi nazariy elementga ishora qiluvchi teskari iteratorni qaytaradi (teskari uchi deb qaraladi)
cbegin () - Vektorning birinchi elementiga ishora qiluvchi doimiy iteratorni qaytaradi.
cend () - Vektorning oxirgi elementidan keyin keladigan nazariy elementga ishora qiluvchi doimiy iteratorni qaytaradi.
crbegin () - Vektordagi oxirgi elementga ishora qiluvchi (teskari boshlanish) doimiy teskari iteratorni qaytaradi. U oxirgi elementdan birinchi elementga o'tadi
crend ​​() - Vektorning birinchi elementidan oldingi nazariy elementga ishora qiluvchi doimiy teskari iteratorni qaytaradi (teskari uchi deb qaraladi)
6-Amaliy mashg’ulot
Sinflarni qo’llash. Sinflarning konstruktor va destruktorlari.
Sinf - bu bizning dasturimizda foydalanishimiz mumkin bo'lgan foydalanuvchi belgilaydigan ma'lumot turi va u ob'ekt tuzuvchisi yoki ob'ektlarni yaratish uchun "reja" sifatida ishlaydi.
Sinf yaratish uchun class kalit so'zdan foydalaning. " MyClass" Nomli sinf yaratamiz.

Sinfni e'lon qilish uchun class kalitli so'zi, undan so'ng ochiluvchifiguraliqavs, so'ng xossalar va metodlari ro'yxati ishlatiladi. Sinfni e'lon qilish yopiluvchi figurali qavs va nuqtali vergul orqali yakunlanadi. Masalan, guruh sinfini quyidagicha e'lon qilish mumkin.
Class Guruh
{
unsigned int Talaba ;
unsigned int yosh ;
void fan_baholari()
}
Sinf elementlari sinfga tegishli funktsiyalarida ishlatilishidan oldin ta'riflangan bo’lishi shart emas. Huddi shunday bir funktsiyadan hali ta'rifi berilmagan ikkinchi funktsiyaga murojaat qilish mumkin. Komponentalarga murojaat huquqlari. Komponentalarga murojaat huquqi murojaat spetsifikatorlari yordamida boshqariladi. Bu spetsifikatorlar :
Protected – himoyalangan;
Private – hususiy;
Public – umumiy;
Amaliy qism:
2. “Kompyuter” Class(sinf)i yaratilsin. O’zgaruvchilar va funksiyalardan foydalanib 5 tadan kam bo’lmagan ob’ektlar xosil qilinsin. Dasturda Konstruktor va destruktorlardan foydalanilsin.

#include


using namespace std;
class Kompyuter{
public:
string markasi;
string modeli;
int otkuchi;
int yili;
private:
string hujjatlar;
};
int main()
{ Kompyuter A1;
A1.markasi="AVTECH";
A1.modeli="Core 11";
A1.otkuchi=100000;
A1.yili=2023;
cout<<"Kompyuter markasi : "<cout<<"Kompyuter modeli: "<cout<<"Ishlash tezligi: "<cout<<"Ishlab chiqarilgan yili: "<return 0;
}

Download 0.66 Mb.

Do'stlaringiz bilan baham:




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