C++ tilida eng samarali kutiubhona bu kutibhonasi
Download 333.61 Kb. Pdf ko'rish
|
Dasturlash Maruza mustaqil ish
. C++ tilida eng samarali kutiubhona bu hisoblanadi chunki u sarlavha fayli qòshadi C++ Fayllar C++ dasturlash tili nafaqat boshqa dasturlash tillarida ham fayllar bilan ishlash juda katta ahamiyatga ega hisoblanadi. C++ dasturlash tilida fstream standart kutubxonadan foydalaniladi. fstream dan foydalanish uchun #include #include fstream standart kutubxonasi ichida 3 ta obyekt mavjud. Faylga yarating va yozing Fayl yaratish uchun, ofstream yoki fstream ob'ektdan foydalaning va fayl nomini ko'rsating. Faylga yozish uchun kiritish operatoridan ( <<) foydalaning #include #include using namespace std; int main() { // Faylni yaratadi yoki ochadi. ofstream MyFile("filename.txt"); // Faylga yozadi. MyFile << "Hello World. MasterSherkulov.Uz"; // Faylni yopadi. MyFile.close(); 2. Sinf-konteynerlar STL da quyidagi sinf-konteynerlar aniqlangan: Asosiy konteynerlar · vector · list · deque · set · multiset to‘plam · map ro‘yxat. Bunda xar bir kalit bitta qiymat bilan bog‘langan. · multimap bog‘langan Xosila konteynerlar · stack · queue · priority_queue 3. Konteynerlarni ikki turga bo‘lish mumkin: ketma-ket va assotsiativ konteynerlar. Ketma-ket konteynerlar. Ular uzluksiz ketma-ketlikda o‘xshash miqdorlarning chekli sonini saqlashni taʻminlaydi. Konteynerlar sifatida vektor (vector), ikki tomonlama navbat (deque), ro‘yxat (list) va bir bog‘lamli ro‘yxat (forward_list), shuningdek konteyner variantlar asosida adapterlar, stek (stack), navbat (queue) va ustuvorlik bilan navbat (priority_queue) sinflarini o‘z ichiga oladi. Massiv ham amallar bilan cheklangan holda konteynerning yana bir turidir. Konteynerning har bir turi ma’lumotlar ustida o‘z amallar to‘plamini taʻminlaydi. Siz tanlagan konteyner turi dasturdagi ma’lumotlar bilan nima qilishni xohlashingizga bog‘liq. Masalan, agar ketma-ketlik o‘rtasida ma’lumotlar tez- tez joylashtirish va o‘chirish kerak bo‘lsa, ro‘yxatlardan foydalanish kerak, ma’lumotlarni oxirida yoki boshida, birinchi navbatda joylashtirish kerak bo‘lsa, ikki tomonlama navbatdan foydalanish maqsadga muvofiq. Assotsiativ konteynerlar. Assotsiativ konteynerlar asosiy ma’lumotlarga kalitlar asosida tezkor murojaat qilishni taʻminlaydi. Bu konteynerlar muvozanatli daraxtlarga asoslangan. Assotsiativ konteynerlarning besh turi mavjud: lug‘atlar (map), ko‘p lug‘atlar (multi) (multimap), to‘plamlar ( set), multi to‘plamlar (multiset) va bitli to‘plam (bitset). Dasturchi standart kutubxonada mavjud bo‘lgan sinflarga asoslanib o‘z konteyner sinflarini yaratishi mumkin. 4. C ++ 11 dan oldin, Til standartida konteyner sinflari uchun cbegin, cend funktsiyalari mavjud emas edi. Const, mos bo'lmagan ob'ektlar uchun Containter :: iterator va doimiy ob'ektlar uchun Containter :: const_iterator-ni qaytaradigan boshlang'ich, tugatish funktsiyalarining ortiqcha yuklari mavjud edi. C ++ 11 standartining chiqarilishi bilan vaziyat o'zgardi. O'sha. agar bizga doimiy iterator kerak bo'lsa (konteynerning doimiyligidan qat'iy nazar), biz cbegin / cend ni tanlashimiz kerak. Agar iteratorning tarkibi muhim bo'lmasa - siz boshlash / tugatish tugmalaridan foydalanishingiz mumkin, konteyner konstantasining borligi / yo'qligi asosida to'g'ri ortiqcha yuk tanlanadi. Cbegin / cend-ni qo'shish zarurati, boshqa narsalar qatori, o'zgarmaydigan turini o'ng tomondagi ifoda turiga qarab xulosa qilish qobiliyatining paydo bo'lishi bilan bog'liq edi: auto it = c.begin (); // u "c" turiga qarab const_iterator yoki iterator turiga kiradi. auto it = c.cbegin (); // u har doim const_iterator turida bo'ladi 5. Dinamik massivlar statik massivlardan qat’iy o‘lchamga ega emasligi bilan farq qiladi. Biroq, bu tezkor qo'shimchalarga ega bo'lish evaziga. Dinamik massiv qanday ishlaydi, u bo'sh joy tugashi bilan uning o'lchamini o'zgartiradi. Bu odatda ikki baravar ko'payadi. Misol uchun, agar uning o'lchami sukut bo'yicha 10 indeksga teng bo'lsa, u 20 ga ikki baravar ko'payadi. Keling, buni qanday amalga oshirishini batafsil ko'rib chiqamiz:Dinamik massivni ajratganingizda, siz tanlagan tilingiz belgilangan o'lchamli statik massivni yaratadi. Aytaylik, bu o'lcham 10 ga teng. Aytaylik, siz massivingizga 11-elementni qo'shmoqchisiz. Bu sizning massivingizda bo'sh joy tugashiga olib keladi, bu esa uning o'lchamidan ikki baravar kattaroq massivni yaratishga olib keladi (20). Shundan so'ng, 10 o'lchamdagi eski massiv barcha qiymatlarini 20 o'lchamli kattaroq massivga nusxalashi kerak. Endi eski massiv sizning operatsion tizimingizga xotirani bo'shatish uchun uni o'chirishni aytadi. Va nihoyat, 20 o'lchamdagi kattaroq massiv endi unga 11-buyumni qo'shadi.Va bu statik va dinamik massivlar o'rtasidagi farq! Umid qilamanki, bizda nima uchun ikkalamiz ham borligini va har bir turdan foydalanishning salbiy va ijobiy tomonlarini tushunasiz. 6. Assosiativ konteynerlar sinfiga set, map, multiset, multimap sinflari kiradi. Set - faqat kalit qiymatli ma'lumotlarni saqlashni taminlaydi, bunda kalit unikal bo'ladi. Map - unikal qiymatli,, kalit-qiymat" ko'rinishida ma'lumotlarni saqlashni taminlaydi. Multiset - faqat kalit ko'rinishida ma'lumotlarni saqlashni taminlaydi, bunda kalit unikal takrorlanuvchi bo'ladi. Multimap - ,, kalit-qiymat" kalit ko'rinishida ma'lumotlarni saqlashni taminlaydi. 7. Barcha assotsiativ konteynerlar quyidagi amallarni qo‘llab quvvatlaydi: count – elementlar sonini qaytaradi, belgilangan kalit bo‘yicha elementlar sonini qaytaradi; find –elementga ko‘rsatkichga mos bo‘lgan iteratorni qaytaradi, agar bunday bo‘lmasa end() funksiyasini vazifasini bajaradi. equal_range – berilgan intervaldigi barcha elementlar uchun iteratorlar juftligini qaytaradi. 8. А= to‘plаm elementlаri uchun qo‘shimchа shаrt: а element b dаn оldin kelаdi (yoki b element а dаn keyin kelаdi) shаrti bаjаrilsа А gа tаrtiblаshtirilgаn juftlik deyilаdi. Umumiy hоldа to‘plаm elyemyentlаri ikki vа undаn оrtiq bo‘lsа, u hоldа tаrtiblаshtirilgаn to‘plаm tushunchаsi kiritilаdi. Tа’rif. А vа B to‘plаmlаrning dekаrt ko‘pаytmаsi deb, bаrchа tаrtiblаshtirilgаn belgilаnаdi, bu yerdа vа . Shundаy qilib Misоl. vа bo‘lsа, -? = = {<>,<>,<>,<>,<>,<>} To‘plamlar ustida amalarda keltirilgan diаgrаmmаlаrgа Eyler-Veynn diаgrаmmаlаri deyilаdi. Ushbu kiritilgаn аmаllаr yordаmidа аyrim to‘plаmlаrni bоshqаlаri оrqаli ifоdаlаsh mumkin, bundа birinchi bo‘lib to‘ldiruvchi аmаli, keyin kesishmа vа undаn keyin yig‘indi vа аyirmа аmаllаri bаjаrilаdi. Bu tаrtibni ozgаrtirish uchun qаvslаrdаn fоydаlаnilаdi. Shundаy qilib to‘plаmni bоshqа to‘plаmlаr оrqаli аmаllаr, qаvslаrdаn fоydаlаnilgаn hоldа ifоdflаsh mumkin, bundаy ifоdа to‘plаmning аnаlitik ifоdаsi deyilаdi. 9. C++ dagi adapter Adapter - bu mos kelmaydigan ob'ektlarning hamkorlik qilishiga imkon beruvchi strukturaviy dizayn namunasi. Adapter ikkita ob'ekt o'rtasida o'rash vazifasini bajaradi. U bitta ob'ekt uchun qo'ng'iroqlarni ushlaydi va ularni ikkinchi ob'ekt tomonidan taniladigan format va interfeysga aylantiradi. Adapter haqida ko'proq bilib oling. Uning turlari Konteyner adapteri Stack adapteri Navbat adapteri Priority_queue adapter 10. Stek. Stekda uning elementlariga faqat bir uchidan murojaat qilish mumkinligi bilan xarakterlanadi va stekning yuqori qismi deb ataladi. Bu LIFO (Last In - First Out, birinchi kirgan oxiri chiqadi) tamoyili bo‘yicha faoliyat ko‘rsatuvchi ma’lumotlar to‘plamidir. Download 333.61 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling