• Iteratorlar.
  • Funktsiya shablonlari. Biz har XIL ma'lumotlar turlari uchun ishlatilishi mumkin bo'lgan umumiy funktsiyani yozamiz. Funktsiya shablonlariga misollar: sort, max, min, printArray max funksiyasi sort –funksiyasi Sinf shablonlari




    Download 1.72 Mb.
    bet3/3
    Sana21.12.2022
    Hajmi1.72 Mb.
    #36457
    1   2   3
    Bog'liq
    Shablonlar qanday ishlaydi
    4-mavzu. Ma’lumotlarni xeshlash algoritmlari. Xesh jadval va xes-fayllar.org, 11-синф сўровнома (русча), Didaktik tamoyillar va ularning tasnifini o‘rganish-hozir.org, 1-amaliy mashg’ulot. Mavzu O’quv jarayonini tashkil etish va di, BUYUK BRITANIYA IQTISODIYOTIDA SUG\'URTANING TUTGAN O\'RNI , Gidrologiya, Madina Isomova
    Funksiyalar.STL funksiya chaqiruvi operatorini ortiqcha yuklaydigan sinflarni o'z ichiga oladi. Bunday sinflarning misollari funksiya ob'ektlari yoki funktorlar deb ataladi. Funktorlar o'tkaziladigan parametrlar yordamida bog'langan funktsiyaning ishlashini moslashtirishga imkon beradi.Funktorlar funksiya emas. Faqat bitta argumentni oladigan funktsiyani ko'rib chiqing. Biroq, ushbu funktsiyani chaqirishda biz ushbu funktsiyaga o'tmoqchi bo'lgan juda ko'p ma'lumotlarga egamiz, lekin biz buni qila olmaymiz, chunki u faqat bitta parametrni qabul qiladi. Nima qilish mumkin? Aniq javoblardan biri global o'zgaruvchilar bo'lishi mumkin. Biroq, yaxshi kodlash amaliyotlari global o'zgaruvchilardan foydalanishni qo'llab-quvvatlamaydi va ular faqat boshqa muqobil bo'lmaganda foydalanish kerakligini aytadi. Funktorlar - bu funksiya yoki funktsiya ko'rsatkichi sifatida ko'rib chiqilishi mumkin bo'lgan ob'ektlar. Funktorlar ko'pincha STL bilan birgalikda quyidagi stsenariyda qo'llaniladi:

    Iteratorlar.Nomidan ko'rinib turibdiki, iteratorlar qiymatlar ketma-ketligi ustida ishlash uchun ishlatiladi. Ular STLda umumiylikka imkon beruvchi asosiy xususiyatdir. Iteratorlar STL konteynerlarining xotira manzillariga ishora qilish uchun ishlatiladi. Ular birinchi navbatda raqamlar, belgilar va boshqalar ketma-ketlikda qo'llaniladi. Ular dasturning murakkabligi va bajarilish vaqtini qisqartiradi.
    1. begin() - Bu funksiya konteynerning boshlanish holatini qaytarish uchun ishlatiladi. 2. end() - Bu funksiya konteynerning oxirgi holatini qaytarish uchun ishlatiladi.
    // C++ code to demonstrate the working of // iterator, begin() and end() #include #include // for iterators #include // for vectors using namespace std; int main(){ vector ar = { 1, 2, 3, 4, 5 }; // Declaring iterator to a vector vector::iterator ptr; // Displaying vector elements using begin() and end() cout << "The vector elements are : "; for (ptr = ar.begin(); ptr < ar.end(); ptr++) cout << *ptr << " "; return 0; }
    3. advance() - Bu funksiya iterator oʻrnini argumentlarida koʻrsatilgan raqamgacha oshirish uchun ishlatiladi.
    4. next() - Bu funksiya iterator oʻz argumentlarida koʻrsatilgan pozitsiyalarni ilgari surgandan soʻng koʻrsatadigan yangi iteratorni qaytaradi.
    5. prev() - Bu funksiya iterator o'z argumentlarida eslatib o'tilgan pozitsiyalarni kamaytirgandan keyin ko'rsatadigan yangi iteratorni qaytaradi.
    6. inserter() :- Bu funksiya elementlarni konteynerning istalgan joyiga kiritish uchun ishlatiladi. U 2 ta argumentni, konteyner va iteratorni elementlarni kiritish kerak bo'lgan joyni qabul qiladi.
    Std::find, std::equal, std::count kabi turli xil STL algoritmlarining shablon ta'rifini ko'rib chiqqandan so'ng, siz Input Iterator tipidagi ob'ektlardan iborat shablon ta'rifini topgan bo'lishingiz kerak. Xo'sh, ular nima va ular nima uchun ishlatiladi?
    Input iteratorlari C++ standart kutubxonasida mavjud bo'lgan iteratorlarning beshta asosiy turidan biri bo'lib, boshqalari Chiqish iteratorlari, Oldinga iterator, Ikki yo'nalishli iterator va Tasodifiy kirish iteratorlaridir.
    Input iteratorlari mavjud bo'lgan barcha iteratorlar orasida eng zaif va eng sodda deb hisoblanadi, ularning funksionalligi va ular yordamida nimaga erishish mumkin. Ular ketma-ket kiritish operatsiyalarida ishlatilishi mumkin bo'lgan iteratorlar bo'lib, bunda iterator tomonidan ko'rsatilgan har bir qiymat faqat bir marta o'qiladi va keyin iterator oshiriladi.

    Std::copy, std::move, std::transform kabi turli xil STL algoritmlarining shablon ta'rifini ko'rib chiqqandan so'ng, siz Output Iterator tipidagi ob'ektlardan iborat shablon ta'rifini topgan bo'lishingiz kerak. Xo'sh, ular nima va ular nima uchun ishlatiladi? Output iteratorlari C++ standart kutubxonasida mavjud bo'lgan iteratorlarning beshta asosiy turidan biri bo'lib, boshqalari kirish iteratorlari, oldinga yo'naltiruvchi iteratorlar, ikki yo'nalishli iteratorlar va tasodifiy kirish iteratorlaridir.Output iteratorlari kiritish iteratorlarining teskari funksiyasini bajaradiganligi sababli, kirish takrorlovchilarining mutlaqo teskarisi hisoblanadi. Ularga qiymatlar ketma-ketlikda tayinlanishi mumkin, lekin qiymatlarga kirishning teskarisini bajaradigan va qiymatlarni belgilash mumkin bo'lmagan kirish iteratorlaridan farqli o'laroq, qiymatlarga kirish uchun foydalanilmaydi. Shunday qilib, input va ouput iteratorlari bir-birini to'ldiradi, deb aytishimiz mumkin.
    Std::search, std::search_n, std::lower_bound kabi turli xil STL algoritmlarining shablon ta'rifini ko'rib chiqqandan so'ng, siz Forward Iterator tipidagi ob'ektlardan iborat shablon ta'rifini topgan bo'lishingiz kerak. Xo'sh, ular nima va ular nima uchun ishlatiladi? Forward iteratorlar C++ standart kutubxonasida mavjud boʻlgan iteratorlarning beshta asosiy turlaridan biri boʻlib, boshqalari kirish iteratorlari, chiqish iteratorlari, ikki yoʻnalishli iteratorlar va tasodifiy kirish iteratorlaridir. Forward iteratorlar kirish va chiqish iteratorlarining kombinatsiyasi hisoblanadi. U ikkalasining funksionalligini qo'llab-quvvatlaydi. Bu qiymatlarga kirish va o'zgartirish imkonini beradi.
    Std::reverse, std::next_permutation va std::reverse_copy kabi turli xil STL algoritmlarining shablon ta'rifini ko'rib chiqqandan so'ng, ularning ikki tomonlama iterator tipidagi ob'ektlardan iborat shablon ta'rifini topgan bo'lishingiz kerak. Xo'sh, ular nima va ular nima uchun ishlatiladi? Bidirectional iteratorlar C++ standart kutubxonasida mavjud boʻlgan iteratorlarning beshta asosiy turlaridan biri boʻlib, boshqalari kirish iteratorlari, chiqish iteratorlari, Forward iteratorlari va tasodifiy kirish iteratorlaridir.
    Bidirectional iteratorlar - bu har ikki yo'nalishda (oxiriga va boshiga) diapazondagi elementlar ketma-ketligiga kirish uchun ishlatilishi mumkin bo'lgan iteratorlar. Ular oldinga iteratorlarga o'xshaydi, faqat oldinga yo'nalishda harakatlanishi mumkin bo'lgan oldinga iteratorlardan farqli o'laroq, ular orqaga yo'nalishda ham harakatlanishi mumkin.Shuni ta'kidlash kerakki, ro'yxat, xarita, multimap, to'plam va multiset kabi konteynerlar bidirectional iteratorlarni qo'llab-quvvatlaydi. Bu shuni anglatadiki, agar biz ular uchun oddiy iteratorlarni e'lon qilsak va ular vektorlar va deque holatlarida bo'lgani kabi, ular ikki tomonlama iteratorlar bo'ladi, ular tasodifiy kirish iteratorlaridir.

    Download 1.72 Mb.
    1   2   3




    Download 1.72 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Funktsiya shablonlari. Biz har XIL ma'lumotlar turlari uchun ishlatilishi mumkin bo'lgan umumiy funktsiyani yozamiz. Funktsiya shablonlariga misollar: sort, max, min, printArray max funksiyasi sort –funksiyasi Sinf shablonlari

    Download 1.72 Mb.