Raqamli texnologiyalar fakulteti dasturiy injiniring yo’nalishi


Standart shablonlar kutubxonasi



Download 1,57 Mb.
bet24/81
Sana23.06.2022
Hajmi1,57 Mb.
#695199
1   ...   20   21   22   23   24   25   26   27   ...   81
Bog'liq
Dasturiy injiniring Dasturlash 2-4

Standart shablonlar kutubxonasi. C++ tili o'z dasturlaringizni yaratishda foydalanishingiz mumkin bo'lgan sinf kutubxonasi bilan birga keladi. Bu kutubxona standart shablonlar kutubxonasi (Standart Template Library) deb ataladi. Ushbu kutubxonalardan konteynerlarni ko’rib chiqamiz.


STL konteynerlari
Hozirgacha eng ko'p ishlatiladigan STL funksionalligi konteyner sinflari (yoki ular "konteynerlar" deb ham ataladi). STL turli vaziyatlarda ishlatilishi mumkin bo'lgan juda ko'p turli xil konteyner sinflarini o'z ichiga oladi. Umuman olganda, STL konteynerlari uchta asosiy toifaga bo'linadi:



  • ketma-ket;

  • assotsiativ;

  • adapterlar.

Endi ularni qisqacha ko'rib chiqamiz.




Ketma-ket konteynerlar. Ketma-ket konteynerlar elementlari ketma-ket joylashgan konteyner sinflari. Ularning o'ziga xos xususiyati shundaki, siz elementingizni konteynerning istalgan joyiga qo'shishingiz mumkin. Ketma-ket konteynerning eng keng tarqalgan namunasi - massiv: massivga 4 ta element qo'shganda, bu elementlar (massivda) siz qo'shgan aniq tartibda paydo bo'ladi.
C++11 dan boshlab, STL 6 ta ketma-ketlik konteynerlarini o'z ichiga oladi:

  • vektor;

  • deque;

  • array;

  • list;

  • forward_list;

  • basic_string.

Vektor sinfi (yoki oddiygina "vektor") dinamik massiv bo'lib, uning barcha elementlarini o'z ichiga olishi uchun kerak bo'lganda o'sadi. Vektor klassi [] indekslash operatori orqali o'z elementlariga o'zboshimchalik bilan kirish imkonini beradi, shuningdek, elementlarni qo'shish va o'chirishni qo'llab-quvvatlaydi.


Quyidagi dasturda vektorga 5 ta butun son qo'shamiz va ularni keyinchalik ko'rsatish uchun kirish uchun qayta yuklangan indekslash operatoridan [] foydalanamiz:


#include


#include
using namespace std;
int main()
{
vector vect;
for (int count=0; count < 5; ++count)
vect.push_back(10 - count);
for (int index=0; index < vect.size(); ++index)
cout << vect[index] << ' ';
cout << '\n';
}

Dasturni bajarish natijasi:


10 9 8 7 6




deque (yoki oddiygina "deklar") sinfi dinamik massiv sifatida amalga oshirilgan dek bo'lib, u har ikki tomondan ham o'sishi mumkin. Masalan:

#include


#include
using namespace std;
int main()
{
deque deq;
for (int count=0; count < 4; ++count)
{
deq.push_back(count); //massivning oxiridan son qo'shish
deq.push_front(10 - count); // massivning boshidan son qo'shish
}
for (int index=0; index < deq.size(); ++index)
cout << deq[index] << ' ';
cout << '\n';
}

Dasturni bajarish natijasi:


7 8 9 10 0 1 2 3




List (yoki oddiygina “roʻyxat”) ikki tomonlama bogʻlangan roʻyxat boʻlib, uning har bir elementi 2 ta koʻrsatkichdan iborat: biri roʻyxatning keyingi elementiga, ikkinchisi esa roʻyxatning oldingi elementiga ishora qiladi. Ro'yxat faqat ro'yxatning boshi va oxiriga kirishni ta'minlaydi - tasodifiy kirish taqiqlanadi. Agar siz o'rtadagi biror qiymatni topmoqchi bo'lsangiz, unda siz izlayotgan narsani topmaguningizcha, bir chetidan boshlashingiz va ro'yxatning har bir elementini takrorlashingiz kerak. Ikki marta bog'langan ro'yxatning afzalligi shundaki, agar siz qayerga qo'shmoqchi bo'lsangiz, elementlarni qo'shish juda tezdir. Odatda, iteratorlar ikki marta bog'langan ro'yxat elementlarini takrorlash uchun ishlatiladi.
Garchi string (va wstring) sinfi odatda ketma-ket konteyner sifatida aytilmasa ham, aslida u char (yoki wchar) tipidagi elementlarga ega vektor sifatida ko'rib chiqilishi mumkin.

Download 1,57 Mb.

Do'stlaringiz bilan baham:
1   ...   20   21   22   23   24   25   26   27   ...   81




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