• Ish tartibi
  • Ishdan maqsad: stl komponentalar va konteynerlarini o’rganish va ularni tadqiq qilish. Qo‘yilgan masala




    Download 412 Kb.
    Sana01.11.2023
    Hajmi412 Kb.
    #92758
    Bog'liq
    6-ameliy
    Ibrayimov 1, Berilgan oraliqda funksiyalarni furye qatoriga yoyish Toq va ju (2), Анг, 2. 1 Tasodifiy miqdor va uning taqsimot funktsiyasi. Taqsimot fu, Python masalalar (Uslubiy qo\'llanma), Get Started with WPS Office for Android, Sultonov Humoyun icpc.global, 2 5463416859728548875, Maruza-1, Презентация1, KTP Tarmaq qáwipsizligi, Texnologik jarayonlarni modellashtirish va optimallashtirish asoslari (N.Yusupbekov), 14-Амалий иш, Лекция 2. Типы задач машинного обучения. Инструментальные средства для машинного обучения, referat




    Ishdan maqsad: STL komponentalar va konteynerlarini o’rganish va ularni tadqiq qilish.
    Qo‘yilgan masala: Shablonlar standart kutubxonasining tuzilmasi, algoritmlar,iteratorlar,konteynerlar haqida nazariy bilimga ega bo’lish.
    Ish tartibi:

    • Tajriba ishi nazariy ma’lumotlarini o‘rganish;

    • Berilgan topshiriqning algoritmini ishlab chiqish;

    • C++ dasturlash muhitida dasturni yaratish;

    • Natijalarni tekshirish;

    • Hisobotni tayyorlash va topshirish.

    STL (Standard Template Library)


    Standart shablonlar kutubxonasi – C++ shablon sinfining to’plami bo’lib, dasturlashning umuniy struktura va funksiyalarini o’z ichiga oladi. Masalan ro’yxat, stack, massiv va boshqalar. Bu sinflar, algoritmlar va konteynerlar iteratorlarining kutubxonasi hisoblanadiю
    C++ STL 3ta komponentga ega:
    -Algoritmlar
    -Konteynerlar
    -Iteratorlar
    Algoritm
    Algoritm sarlavhasi ma’lum oraliq elementlariga qo'llash uchun mo'ljallangan maxsus funksiyalar to'plamiga ega. Bu funksiyalar konteynerga ishlatiladi va konteyner tarkibi uchun turli xil operatsiyalarni bajarishi vositalarini taqdim etadi.
    Algoritm nima qila oladi?

    KONTEYNERLAR NIMA?
    Konteynerlar yoki sinf konteynerlari ma’lumot va obyektlarni saqlaydi.Quyidagi konteynerlar mavjud:

    Assosiativ konteynerlar: tez topish mumkin bo’lgan, tartiblangan ma’lumotlar tuzilmasini realizatsiya qilish imkoniyatini beradi.

    Ketma-ket konteneylar: ketma-ket murojaat qilinuvchi ma’lumotlar strukturasini realizatsiya qiladi.

    Konteynerli adapterlar deb ataladigan. Ushbu guruhga standart STL konteynerlarini maxsus maqsadlar uchun moslashtirilgan konteynerlar kiradi. Uchta standart konteyner adapteri mavjud:
    Stek
    Navbat
    Ustuvor navbat
    ITERATORLAR
    Ketma-ketlikni qiymatini qayta ishlash uchun foydalaniladi. Interatorlar kolleksiya obyektlarining elementlari orqali o’tish uchun ishlatiladi. Bu kolleksiyalar konteynerlar yoki to’plam osti konteynerlar bo’lishi mumkin.
    Iteratorlarning beshta tipi mavjud:
    1. Kiritish iteratorlar (input_iterator) tenglik, nomini o‘zgartirish va inkrementa operatsiyalarni qo‘llaydi.
    ==, !=, *i, ++i, i++, *i++
    Kiritish iteratsiyasining maxsus xolati istream_iterator iborat.
    2. Chiqarish iteratorlar (output_iterator) o‘zlashtirish operatorning chap tarafidan imkon bo‘lgan isimning o‘zgartirish va inkrementa operatsiyalar qo‘llanadi.
    ++i, i++, *i=t, *i++=t
    Chiqarish iteratsiyasining maxsus xolati ostream_iterator.
    3. Bitta yo‘nalishdagi iteratorlar (forward_iterator) kiritish/chiqarish operatsiyalarning barchasini qo‘llaydi, bundan tashqari chegarasiz o‘zlashtirishning imkonini beradi.
    ==, !=, =, *i, ++i, i++, *i++
    4. Ikki yo‘nalishdagi iteratorlar (biderectional_iterator) forward-iteratorlarning barcha xususiyatlariga ega, bundan tashqari, konteynerni ikkita yo‘nalishi bo‘yicha o‘tish imkonini beradigan qo‘shimcha dekrementa (--i, i--, *i--) operatsiyasiga ega.
    5. Ixtiyoriy ruxsatga ega bo‘lgan iteratorlar (random_access_iterator) biderectional-iteratorlarning barcha xususiyatlariga ega, bundan tashqari solishtirish va manzil arifmetikasi operatsiyalarni qo‘llaydi.
    i+=n, i+n, i-=n, i-n, i1-i2, i[n], i1=i2

    Shuningdek, STLda teskari iteratorlar (reverse iterators) qo‘llaniladi. Ketma-ketlikni teskari yo‘nalishda o‘tuvchi ikki yo‘nalishli yoki ixtiyoriy ruxsatga ega bo‘lgan iteratorlar teskari iteratoralar bo‘lishi mumkin. Konteynerlarga, algoritmlarga va STLdagi iteratorlarga qo‘shimcha bir nechta standart komponentalar xam qo‘llaniladi. Ulardan asoslari esa xotira taqsimlovchilar, predikatlar,va solishtirish funksiyalaridir. Xar bir konteynerda uning uchun aniqlangan va konteyner uchun xotirani belgilash jarayonini boshqaradigan xotira taqsimlovchisi (allocator) mavjud. Ko‘rsatilmagan xolda esa xotira taqsimlovchisi allocator sinf ob’ektidir. Xususiy taqsimlovchini tavsiflash mumkin.


    Ba’zi bir algoritmlar va konteynerlarda muxim tipdagi predikat ataluvchi funksiyalar ishlatiladi. Predikatlar unar va binar bo‘lishi mumkin. U yoki bu qiymatni olish aniq shartlari dasturchi orqali aniqlanadi. Unar predikatlarning tipi – UnPred, binar predikatlarning esa - BinPred. Argumentlar tipi konteynerda saqlanuvchi ob’ektlar tipiga mos. Ikkita elementlarni solishtirish uchun binar predikatlarning maxsus tipi aniqlangan. U solishtirish funksiya (comparison function) deyiladi. Agarda birinchi element ikinchidan kichik bo‘lsa, unda funksiya rost qiymatni qaytaradi. Comp tip funksiya tipidir.
    STL da ob’ekt-funksiyalar o‘ziga xos ahamiyatga ega.
    Ob’ekt-funksiyalar – bu sinfda «kichik qavslar» () operatsiyasi aniqlangan sinf nusxalari. Ba’zi bir xollarda funksiyalarni ob’ekt-funksiyalarga almashtirish qulay deb xisoblanadi. Ob’ekt-funksiya funksiya sifatida ishlatilsa, unda uni chaqirish uchun operator () operator ishlatiladi.
    Konteyner usullari
    Iteratorlarni olish usullari
    • begin() birinchi elementga ko‘rsatadi;
    • end() oxiridan keyingi elementga ko‘rsatadi;
    • rbegin() teskari ketma-ketlikdagi birinchi elementni ko‘rsatadi;
    • rend() teskari ketma-ketlikdagi oxirgidan keyingi elementni ko‘rsatadi
    Elementlarga ruxsat
    • front() birinchi elementga ilova;
    • Back() oxiri elementga ilova;
    • operator[](i) tekshirishsiz indeks bo‘yicha ruxsat;
    • at(i) tekshirish bilan indeks bo‘yicha ruxsat.
    • front() birinchi elementga ilova;
    Elementlarni kiritish usullari
    • insert(p,x) r ko‘rsatgan elementdan oldin xni qo‘shish
    • insert(p,n,x) rdan oldin xning n nusxalarini qo‘shish
    • insert(p,first,last) rdan oldin [first:last]dagi elementlarni qo‘shish
    • push_back(x) oxiriga xlarni qo‘shish
    • push_front(x) yangi birinchi elementni qo‘shish (ikta uchga ega bo‘lgan tartiblar va ro‘yxatlar uchun)
    Elementlarni o‘chirish usullari
    • erase(p) r pozitsiyadagi elementni o‘chirish;
    • erase(first,last) [first:last]dan elementlarni o‘chirish;
    • pop_back() oxirgi elementni o‘chirish;
    • pop_front() birinchi elementni o‘chirish (ikta uchga ega bo‘lgan tartiblar va ro‘yxatlar uchun)
    O‘zlashtirish usullari
    • operator=(x) konteynerga x konteynerni elementlari o‘zlashtiriladi;
    • assign(n,x) konteynerga x elementning n nusxasi o‘zlashtiriladi (assotsiativ bo‘lmagan konteynerlar uchun);
    • assign(first,last) [first:last] diapazondagi elementlarni o‘zlashtirish
    Assotsiativ usullari
    • find(elem) elem qiymatga ega bo‘lgan birinchi elementni pzitsiyasi topadi
    • lower_bound(elem) element qo‘yish mumkin bo‘lgan birinchi pozitsiyani to‘padi
    • upper_bound(elem) element qo‘yish mumkin bo‘lgan oxirgi pozitsiyani to‘padi
    • equal_range(elem) element qo‘yish mumkin bo‘lgan birinchi va oxirgi pozitsiyalarni to‘padi
    Assotsiativ usullar
    • operator[](k) k kalitli elementga ruxsat;
    • find(k) k kalitli element pozitsiyasini topadi;
    • lower_bound(k) k kalitli elementning birinchi pozitsiyasini topadi;
    • upper_bound(k) kdan katta bo‘lgan kalitli birinchi elementni to‘padi;
    • equal_range(k) k kalitli elementni lower_bound (kuyi chegarasini) va upper_bound (yuqori chegarasini) topadi.
    • Boshqa usullar
    • size() elementlar soni;
    • empty() konteyner bo‘shmi?
    • capacity() vektor uchun ajratilgan xotira (faqat vektorlar uchun);
    • reserve(n) n elementdan iborat bo‘lgan konteyner uchun xotira ajratadi;
    • swap(x) ikkita konteynerlarni joyini almashtirish;
    • ==, !=, < solishtirish operatorlari
    Download 412 Kb.




    Download 412 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Ishdan maqsad: stl komponentalar va konteynerlarini o’rganish va ularni tadqiq qilish. Qo‘yilgan masala

    Download 412 Kb.