• Topshirdi: Normuminov Muhriddin Fan o’qituvchisi:______________________ Urganch 2022 Mavzu: Vektorlarni tashkil etish.
  • Texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi




    Download 41.84 Kb.
    bet1/2
    Sana14.03.2023
    Hajmi41.84 Kb.
    #45415
      1   2
    Bog'liq
    6-mustaqil ish
    7-mustaqil ish, Maǵlıwmatlardı xeshlash algoritmları, Jaylastırıw usılı, Adabiyot amaliy 2023 vc ppt 03-Feb-2023 22-00-03 (2), Ish holatidagi qozonxona yordamchisi qurilmalarining issiqlik tasniflarini aniqlash., 1- Tema (2), Amaliyot tavsifnomasi, 1687849545, 1689075130 (1), MICROSOFT EXCEL ДАСТУРИ УАКИДА, TAQVIM REJA da MUSTAQIL ISHLAR shakli, 11- sinf labaratoriya — копия




    O‘ZBEKISTON RESPUBLIKASI AXBOROT
    TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI
    RIVOJLANTIRISH VAZIRLIGI
    MUHAMMAD AL-XORAZMIY NOMIDAGI
    TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI URGANCH FILALI
    Dasturlash 1 fanidan

    Mustaqil ish

    Gurux: 972-21
    Topshirdi: Normuminov Muhriddin
    Fan o’qituvchisi:______________________

    Urganch 2022

    Mavzu: Vektorlarni tashkil etish.
    Vektorlar o'lchamlari o'zgarishi mumkin bo'lgan massivlarni ifodalovchi ketma-ket konteynerlardir.

    Xuddi massivlar singari, vektorlar ham o'z elementlari uchun tutashgan saqlash joylaridan foydalanadilar, ya'ni ularning elementlariga uning elementlariga muntazam ko'rsatgichlardagi ofsetlar yordamida va massivlardagi kabi samarali kirish mumkin. Ammo massivlardan farqli o'laroq, ularning o'lchamlari dinamik ravishda o'zgarishi mumkin, ularning saqlashi konteyner tomonidan avtomatik ravishda amalga oshiriladi.

    Ichki vektorlar o'z elementlarini saqlash uchun dinamik ravishda ajratilgan massivdan foydalanadilar. Yangi elementlar kiritilganda hajmini oshirish uchun bu massivni qayta taqsimlash kerak bo'lishi mumkin, bu esa yangi massiv ajratish va barcha elementlarni unga ko'chirishni nazarda tutadi. Bu ishlov berish vaqti jihatidan nisbatan qimmat vazifa va shuning uchun konteynerga har bir element qo'shilganda vektorlar qayta taqsimlanmaydi.

    Buning o'rniga, vektor konteynerlari mumkin bo'lgan o'sish uchun qo'shimcha saqlash joylarini ajratishi mumkin va shuning uchun konteyner o'z elementlarini (ya'ni, uning hajmi ) saqlash uchun zarur bo'lgan saqlash hajmidan kattaroq haqiqiy sig'imga ega bo'lishi mumkin. Kutubxonalar xotiradan foydalanish va qayta taqsimlash o'rtasidagi muvozanatni saqlash uchun turli xil o'sish strategiyalarini amalga oshirishi mumkin, ammo har qanday holatda, qayta taqsimlashlar faqat o'lchamning logarifmik ravishda o'sib borayotgan oraliqlarida amalga oshirilishi kerak , shunda vektor oxiriga alohida elementlarning kiritilishi amortizatsiyalangan doimiy vaqt bilan ta'minlanishi mumkin. murakkablik (qarang push_back ).



    Shuning uchun, massivlarga nisbatan vektorlar saqlashni boshqarish va samarali tarzda dinamik o'sish qobiliyati evaziga ko'proq xotirani iste'mol qiladi.
     

    Sarlavhada belgilangan













    template<
    class T,
    class Allocator = std::allocator> class vector; (1)







    namespace pmr {
    template< class T >
    using vector = std::vector>; (2)
    }






















    1) std::vectordinamik o'lchamli massivlarni qamrab oluvchi ketma-ketlik konteyneridir.
    2) std::pmr::vectorpolimorfik ajratuvchidan foydalanadigan taxallus shablonidir .
    Elementlar ketma-ket saqlanadi, ya'ni elementlarga faqat iteratorlar orqali emas, balki elementlarga muntazam ko'rsatgichlar uchun ofsetlardan ham foydalanish mumkin. Bu shuni anglatadiki, vektor elementiga ko'rsatgich massiv elementiga ko'rsatgichni kutayotgan har qanday funktsiyaga uzatilishi mumkin.
    Vektorni saqlash avtomatik tarzda amalga oshiriladi, kerak bo'lganda kengaytiriladi. Vektorlar odatda statik massivlarga qaraganda ko'proq joy egallaydi, chunki kelajakdagi o'sishni boshqarish uchun ko'proq xotira ajratiladi. Shunday qilib, har safar element kiritilganda vektorni qayta taqsimlash kerak emas, faqat qo'shimcha xotira tugashi bilan. Ajratilgan xotiraning umumiy hajmini sig'im() funksiyasi yordamida so'rash mumkin . Qo'shimcha xotira tizimga shrink_to_fit() qo'ng'irog'i orqali qaytarilishi mumkin . (C++11 dan beri)
    Qayta taqsimlash odatda ishlash nuqtai nazaridan qimmat operatsiyalardir. Agar elementlar soni oldindan ma'lum bo'lsa, reserve () funktsiyasidan qayta taqsimlashni bartaraf etish uchun foydalanish mumkin.
    Vektorlar ustidagi umumiy operatsiyalarning murakkabligi (samaradorligi) quyidagicha:

    • Tasodifiy kirish - doimiy O(1)

    • Elementlarni oxirida kiritish yoki olib tashlash - amortizatsiyalangan doimiy O(1)

    • Elementlarni kiritish yoki olib tashlash - O(n) vektorining oxirigacha bo'lgan masofada chiziqli.

    std::vector( T boshqalar uchunbool) Container , AllocatorAwareContainer , SequenceContainer ContiguousContainer va ReversibleContainer talablariga javob beradi .
    C++ vektori standart andozalar kutubxonasidagi (STL) shablon sinfi boʻlib, u yanada aniqroq massiv sifatida ishlaydi. Massivlardan farqli o'laroq, vektorlar elementlarni kiritish yoki o'chirishda avtomatik ravishda o'lchamlarini o'zgartirishi mumkin , shuning uchun doimiy o'zgaruvchan ma'lumotlar bilan ishlashda ulardan foydalanish juda yaxshi. C++ dasturida vektorlardan foydalanish maʼlumotlaringizni yanada moslashuvchan va samarali saqlash imkonini beradi. Bugun biz C++ vektorlariga chuqurroq kirib boramiz va imtiyozlar, funksiyalar va ishga tushirishni muhokama qilamiz.

    Download 41.84 Kb.
      1   2




    Download 41.84 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi

    Download 41.84 Kb.