O’zbekiston Respublikasi Axborot Texnologiyalari va Komunikatsiyalarini rivojlantirish vazirligi Muxammad Al-Xorazmiy nomidagi Toshkent axborot Texnologiyalari universiteti Tizimli va amaliy dasturlashtirish kafedrasi Ma’lumotlar tuzilmasi va algoritmlar fani bo’yicha Mustaqil ishi Bajardi: SWD017-guruh talabasi Axmatxanov Afzalbek Qabul qildi: Muminov Sanjar С++ dasturlash tilida ma’lumotlar turlari. Massiv va vektorlarning farqi. Reja: - Ma’lumot turlari
- Massivlar
- Vektorlar
- Massivlar va vekrorlar farqi.
Ma’lumotlar turlari - Barcha o'zgaruvchilar deklaratsiya davomida ma'lumotlar turini ishlatadilar, bunda saqlanadigan ma'lumotlar turini cheklashadi.
- Shuning uchun, biz ma'lumotlarning turlari o'zgaruvchiga saqlanishi mumkin bo'lgan ma'lumot turini aytib berish uchun ishlatiladi, deb ayta olamiz.
- Qachonki har qanday o'zgaruvchi C ++ da aniqlansa, kompilyator u e'lon qilingan ma'lumotlar turiga asoslanib ushbu o'zgaruvchiga ba'zi xotirani ajratadi. Har bir ma'lumot turi uchun har xil hajmdagi xotira talab qilinadi
Oddiy ma'lumotlar turlari : Ushbu ma'lumotlar turlari o'rnatilgan yoki oldindan belgilangan ma'lumotlar turlaridan iborat bo'lib, foydalanuvchi o'zgaruvchini e'lon qilish uchun bevosita foydalanishi mumkin. masalan: int, char, float, bool va boshqalar. C ++ da mavjud bo'lgan dastlabki ma'lumotlar turlari: Oddiy ma'lumotlar turlari : Ushbu ma'lumotlar turlari o'rnatilgan yoki oldindan belgilangan ma'lumotlar turlaridan iborat bo'lib, foydalanuvchi o'zgaruvchini e'lon qilish uchun bevosita foydalanishi mumkin. masalan: int, char, float, bool va boshqalar. C ++ da mavjud bo'lgan dastlabki ma'lumotlar turlari: - Integer
- Character
- Boolean
- Floating Point
- Double Floating Point
- Valueless or Void
- Wide Character
Hosil bo'lgan ma'lumotlar turlari: ibtidoiy yoki o'rnatilgan ma'lumotlar turlaridan olingan ma'lumotlar turlari, hosil qilingan ma'lumotlar turlari deb nomlanadi. Bular to'rt xil bo'lishi mumkin, xususan: Hosil bo'lgan ma'lumotlar turlari: ibtidoiy yoki o'rnatilgan ma'lumotlar turlaridan olingan ma'lumotlar turlari, hosil qilingan ma'lumotlar turlari deb nomlanadi. Bular to'rt xil bo'lishi mumkin, xususan: - Function
- Array
- Pointer
- Reference
Xulosa yoki foydalanuvchi belgilaydigan ma'lumotlar turlari : Ushbu ma'lumotlar turlarini foydalanuvchi o'zi belgilaydi. Masalan, C ++ yoki tuzilishdagi sinfni belgilash. C ++ quyidagi foydalanuvchi belgilaydigan ma'lumotlar turlarini taqdim etadi: - Class
- Structure
- Union
- Enumeration
- Typedef defined DataType
Massivlar - Massivlar ma'lum bir turdagi elementlarning ma'lum sonini o'z ichiga oladi.
- Dasturni tuzishda kompilyator kerakli bo'sh joyni zaxiralashi uchun, u aniqlanganda massiv tarkibidagi elementlarning turini va sonini ko'rsatishingiz kerak.
- Dasturni tuzishda kompilyator ushbu qiymatni aniqlay olishi kerak.
- Massiv aniqlangandan so'ng, massivning o'ziga xos elementlariga kirish uchun indeks bilan birga qator uchun identifikatordan foydalanasiz.
- [...] massivlar null indekslangan; ya'ni birinchi element 0 indeksida.
- Ushbu indekslash sxemasi ko'rsatgichlar va massivlar va ko'rsatgichlar arifmetikasi uchun til belgilaydigan qoidalar o'rtasida C ++ bilan yaqin aloqani ko'rsatadi.
Vektorlar - Vektor - bu [] massiviga tasodifiy kirishni ta'minlaydigan dinamik kattalikdagi ob'ektlar ketma-ketligi.
- Push_back funktsiyasi nusxasi konstruktoridan foydalanib, o'z argumentlarini nusxa ko'chiradi, nusxani vektorga oxirgi element sifatida qo'shadi va hajmini bittaga oshiradi.
- pop_back oxirgi elementni o'chirib, buning aksini qiladi.
- Vektor oxiridan elementlarni qo'shish yoki yo'q qilish amortizatsiya qilingan doimiy vaqtni oladi, boshqa joydan kiritish yoki o'chirish esa chiziqli vaqtni oladi.
Massiv va vektorlar orasidagi farq - Ko'p holatlarda, C ++uslubidagi massivda vektor sizning birinchi tanlovingiz bo'lishi kerak.
- Birinchidan, ular dinamik hajmga ega, bu kerak bo'lganda o'sishi mumkinligini anglatadi.
- S massivlarida bo'lgani kabi, maqbul statik hajmni aniqlash uchun siz har qanday turdagi tadqiqotlarni o'tkazishingiz shart emas; vektor kerak bo'lganda o'sadi va agar kerak bo'lsa, uni ko'proq yoki kamroq qo'l bilan o'zgartirish mumkin.
- Ikkinchidan, vektorlar a'zo funktsiyasidan foydalangan holda chegarani tekshirishni taklif qiladilar (lekin [[operatori bilan emas]]).
- Demak, siz biron bir mavjud bo'lmagan indeksga murojaat qilsangiz ham, biron bir dastur ishlamasligini yoki undan ham yomonrog'ini kuzatmasangiz, Buzuq ma'lumotlar bilan ishlashni davom ettirish.
Massivlar Massivlar - Elementlarning faqat izchil, indekslangan ketma-ketligini ta'minlash;
- Belgilangan o'lchamga ega bo'lish; massivni o'lchamini C ++ da o'zgartira olmaysiz ;
- Ularning hajmi agar dinamik ravishda taqsimlanmagan bo'lsa, kompilyatsiya vaqtining doimiysi bo'lishi kerak;
- Ular saqlash joyini siz e'lon qilgan sohaga qarab oladilar;
- Agar ular dinamik ravishda ajratilgan bo'lsa, siz shunchaki ko'rsatgich olasiz va ularning hajmini aniqlay olmaysiz;
- Ko'p holatlarda avtomatik ravishda ko'rsatkichlarga bo'linadi;
- Funktsiyadan qaytarib bo'lmaydi;
- to'g'ridan-to'g'ri nusxa ko'chirish yoki tayinlash mumkin emas;
- Ob'ektlarning dinamik qatorlari standart konstruktorni talab qiladi, chunki avval ularning barcha elementlari qurilishi kerak;
Vektorlar - dinamik qator sifatida amalga oshirildi;
- dinamik ravishda o'sib boradi va shartnoma tuzadi;
- avtomatik ravishda yo'q qilinishdan ozod bo'lgan uning xotirasini boshqaradi;
- funktsiyalardan uzatilishi yoki qaytarilishi mumkin (qiymat bo'yicha);
- nusxa ko'chirish / tayinlash mumkin
- ko'rsatgichlarga bo'linmaydi, ammo siz aniq ma'lumotlar uchun ko'rsatgichni olishingiz mumkin (& vec [0] kutilganidek ishlashi kafolatlangan);
- har doim ichki dinamik qatorni o'z o'lchamlari (elementlarning soni saqlangan) va sig'imi (hozirgi tanlangan blokda qancha element saqlanishi mumkinligi) bilan birlashtiradi;
- shu sababli, ular kichik, qisqa umrlangan mahalliy massivlar uchun "oddiy" qatorlarga qaraganda samaraliroq bo'lishi mumkin;
- doimiy ob'ektlar uchun standart konstruktorni talab qilmaydi;
Vektorga element qo’shish va o’cherish dasturi E’tiboringiz uchun rahmat!!!
Do'stlaringiz bilan baham: |