• Iteratorlar va ularning vazifalari Reja
  • O`zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi




    Download 105.24 Kb.
    bet1/5
    Sana30.11.2022
    Hajmi105.24 Kb.
    #32399
      1   2   3   4   5
    Bog'liq
    Iteratorlar va ularning vazifalari
    2-mustaqil ish sertifkatlashtirish, sezgi a\'zolari, tex ijod oraliq, maxsulot tayyorlash sirtqi uchun topshiriq 2022 , mashina-choki-turlari-birlashtiruvchi-choklar-ziy-choklar, BOSHLANG`ICH SINF MATEMATIKA DARSLARIDA INTERFAOL METODLARDAN FOYDALANISH, mustaqil ish makroiqtisodiyot, Mustaqil ishi-3, 5-amaliy mashg\'ulot, masalalar to`plami 2008, sdasturlash tilini organish, KT fanidan test savol namunasi, Pedagogika va psixalogiya 1-mustaqil ish, Ms Power Pointda giperssilkalar o’rnatish. Mavzulashtirilgan sha-fayllar.org

    O`ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
    MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI

    ,,TELEKOMMUNIKATSIYALAR TEXNOLOGIYALAR VA KASB TA`LIMI’’ FAKULTETI
    ,,AXBOROT XAVFSIZLIGI’’ yo`nalishi talabasi
    ISOMIDDINOV RAMILning
    ,,Ma’lumotlar tuzulmasi va algoritmi’’ fanidan bajargan
    Mustaqil ish

    BAJARDI: Isomiddinov R.M


    TEKSHIRDI: Raximov R.T

    SAMARQAND-2022


    Iteratorlar va ularning vazifalari
    Reja:
    1.Iteratorlar haqida umumiy ma’lumotlar
    2. Iteratorlar asosiy xususiyatlar
    3. Iterator tasnifi

    Foydalanilgan adabiyotlar

    1.Iteratorlar haqida umumiy ma’lumotlar
    Iterator - bu elementlar ketma-ketligiga kirishni ifodalash uchun ishlatiladigan ob'ekt. Masalan, bular konteyner elementlari yoki qurilmadan yoki fayldan ma'lumotlar oqimi bo'lishi mumkin.
    Iteratorlar kutubxona qismlarining kattaroq o'zaro mustaqilligiga erishish imkonini beradi, shuning uchun iteratorlar orqali konteyner elementlari bilan ishlash algoritmini amalga oshirish o'z elementlarini sanab o'tish uchun iteratorlarni qo'llab-quvvatlaydigan har qanday konteynerni qayta ishlash uchun ishlatilishi mumkin. Bundan tashqari, u konteynerga uni qayta ishlaydigan algoritmlar haqida hech narsa bilmaslik imkonini beradi, u taqdim etishi kerak bo'lgan yagona narsa iteratorlar orqali uning elementlariga kirishdir.
    Misol uchun, iteratorlar tushunchasi elementlarni o'zgartirishga imkon beradigan har qanday konteyner uchun mutlaqo o'zgartirishlarsiz bir xil saralash algoritmidan foydalanishga imkon beradi: massiv uchun va ro'yxat uchun va hatto, masalan, tartibsiz ikkilik daraxt uchun - iterator uchun. elementlarga ketma-ket kirish uchun javobgar bo'ladi (faqat bu holda daraxt o'z elementlarini ifodalovchi ketma-ketlik nuqtai nazaridan SARALANIShini tushunish kerak, bu daraxtning o'zi uchun qanday ma'noga ega bo'lishi birinchi qarashda unchalik aniq emas) . Shuningdek, siz iteratorni filtr sifatida ishlashga majbur qilishingiz va barcha elementlarni emas, balki faqat ma'lum bir shartni qondiradigan elementlarni saralashingiz mumkin (STLda filtrlovchi iteratorlar mavjud emas, lekin bunday iteratorni o'zingiz yozishingiz mumkin). Siz yanada murakkab funksiyalarni qo'shishingiz va iterator qilishingiz mumkin, masalan, to'plamni o'zgartirishingiz mumkin - pastga qarang.
    Eslatib o'tamiz, takrorlanadigan elementlarni operativ xotirada saqlash umuman talab qilinmaydi - yuqorida aytib o'tilganidek, iterator har qanday ketma-ketlikning elementlarini takrorlaydi, bu, masalan, qurilmadan ma'lumotlar oqimi yoki ma'lumotlar oqimi bo'lishi mumkin. barcha tub sonlar ketma-ketligi.
    Shubhasiz, bunday imkoniyatlarni iterator abstraktsiyasi yordamisiz amalga oshirish to'plam yoki ketma-ketlikni ishlatadigan barcha funktsiyalar kodiga jiddiy aralashuvni talab qiladi.

    2. Iteratorlar asosiy xususiyatlar


    STL iteratorlari ketma-ketlikning joriy elementini qaytaruvchi operatorga* ega bo'lgan ob'ektlardir, bu element ma'lum bir sinf yoki o'rnatilgan T tipidagi ob'ekt bo'lib , iteratorning qiymat turi deb ataladi. Tenglik aniqlangan har bir iterator X turi uchun iteratorning masofa turi deb ataladigan tegishli imzolangan butun son turi mavjud.
    Operator ++() iteratorni keyingi elementga o'tkazish uchun ishlatiladi . Boshqa iterator turlari boshqa amallarni belgilashi mumkin: operator --() (ikki tomonlama iterator uchun), ixtiyoriy songa oshirish (tasodifiy kirish iteratori) va hokazo. – "Iteratorlarning tasnifi" va "Turli turdagi iteratorlarning xususiyatlari" bo'limlariga qarang.
    operator *() va operator ++() barcha STL iterator turlari uchun asosiy operatsiyalardir.
    Operator* belgilangan iterator qiymatlari dereferenceable deb ataladi .
    To'plamning oxirgi elementi - yakuniy ( o'tgan - oxiri ) deb ataladigan qiymatlardan tashqariga ishora qiluvchi iterator qiymatlari mavjud . Keyingi qiymatlar bekor qilinmaydi va ketma-ketlikning oxirini belgilash uchun ishlatiladi.
    Berilgan turdagi iteratorlar uchun tenglik amali aniqlangan va j ++ amallarning chekli (ehtimol null) ketma-ketligi mavjud bo'lsa, j iteratoriga i iteratoridan erishish mumkin deyiladi; j ++; …. , undan keyin j == i . Agar i va j iteratorlari turli to'plamlarga tegishli bo'lsa 1 , u holda hech biriga boshqasidan kirish mumkin emas. Aks holda, agar iteratorlar to'plamning barcha elementlarini (yoki ularning bir xil kichik to'plamini) takrorlashi kerak bo'lsa, u holda i ga j dan kirish mumkin yoki j ga i orqali kirish mumkinligi aniq.
    Elementlar ketma-ketligi bosh va oxiriga ishora qiluvchi bir juft iterator [ i , j ) tomonidan beriladi. Bunday holda, i bilan ko'rsatilgan element kiritilgan, j esa yo'q, ya'ni. ko'rib chiqilgan oxirgi element oldingi j hisoblanadi. Aksariyat STL algoritmlari hamda sinf usullari shu turdagi ketma-ketliklar ustida ishlaydi.Masalan, vektor klassi vektorni bir juft iterator tomonidan berilgan elementlar ketma-ketligidan olingan tarkib bilan to'ldiradigan usulni o'z ichiga oladi [birinchi; oxirgi). Birinchi tomonidan ko'rsatilgan element kiritilgan, lekin oxirgi tomonidan ko'rsatilgan element kiritilmagan.
    shablon >
    sinf vektori
    {
    ommaviy:
    // vektorni belgilangan ketma-ketlik elementlari bilan to'ldirish
    // iteratorlar [birinchi: oxirgi)
    shablon
    void assign(Avvalida, oxirgisida);
    };
    [ i , i ) ketma-ketligi bo'sh. [i,j) ketma-ketligi j ga i dan kirish mumkin bo'lgan taqdirdagina amal qiladi. Kutubxona algoritmlarini noto'g'ri ketma-ketliklarga qo'llash natijasi aniqlanmagan.
    Iteratordan foydalanish g'oyasini quyidagi misolda tasvirlash mumkin (quyidagi misol STL ishlatadigan kod emas, bu iteratorlar kontseptsiyasini ko'rsatishga qaratilgan mavhum koddir)
    // Misol ko'rsatadiki, print_sequence hech qanday ma'lumotga ega emas
    // imkon beradigan ishlov beradigan ketma-ketlik haqida
    // uning yordami bilan ifodalanadigan har qanday ketma-ketlikni qayta ishlash
    // ba'zan iteratorlar
    typedef int *iterator;
    voidprint_sequence(iterator birinchi, iterator oxirgi)
    {
    while( birinchi != oxirgi )
    {
    cout << *birinchi << endl;

    Download 105.24 Kb.
      1   2   3   4   5




    Download 105.24 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    O`zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi

    Download 105.24 Kb.