Reja: Iteratorlar. Iteratorlarning toifalari; Iteratotlar-adapterlar


// Ammo, agar iterator tasodifiy kirish iteratori bo'lsa



Download 1,96 Mb.
bet5/11
Sana20.03.2022
Hajmi1,96 Mb.
#502177
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
4- taqdimot

// Ammo, agar iterator tasodifiy kirish iteratori bo'lsa,

  • // Ammo, agar iterator tasodifiy kirish iteratori bo'lsa,
  • // keyin "(") operatsiya aniqlanadi, bu samarali (doimiy vaqt uchun) imkon beradi.
  • // iteratorlar orasidagi masofani hisoblash.
  • template
  • auto _distance(It from, It to, random_access_iterator_tag)
  • {
  • return to - from;
  • }
  • }
  • // Tashqi interfeys masofasi, uchinchi parametr yordamida kerakli variantni tanlaydi. template
  • auto distance(It from, It to)
  • {
  • typename iterator_traits::iterator_category tag;
  • return implementation::_distance(from, to, tag);
  • }
  • }

advance(it, n) funktsiyasi iteratorni belgilangan yo'nalishda n qadamlar bilan siljitadi (n- ning salbiy qiymatlari uchun orqaga siljish ikki yo'nalishli iteratorlar uchun aniqlanadi).

  • advance(it, n) funktsiyasi iteratorni belgilangan yo'nalishda n qadamlar bilan siljitadi (n- ning salbiy qiymatlari uchun orqaga siljish ikki yo'nalishli iteratorlar uchun aniqlanadi).
  • next (it), next (it, n) va prev (it), prev(it, n) funktsiyalar oldinga yoki orqaga yo'naltirilgan iteratorni mos ravishda bitta yoki n pozitsiyalarga qaytaradi.

Iteratorlar - adapterlar

  • Teskari iterator sinfi reverse_iterator ketma-ketlik tartibini o'zgartirib, iteratorning ikki yo'naltirilgan iterator obyektini o'rnatadi: teskari iteratorni ko'paytirish bazaviy iteratorni pasaytiradi va aksincha. Asosiy a'zo funktsiyasidan foydalangan holda tayanch iteratorni olish mumkin. Standart konteynerlar in rbegva rend funktsiyalarini amalga oshirish uchun reverse_iterator-dan foydalanadi, ular yordamida konteynerda saqlanadigan qiymatlar ketma-ketligini teskari tartibda aks ettirilishi mumkin (to'g'ridan-to'g'ri buyurtmani boshlash va tugatish funktsiyalari yordamida olish mumkin). To'g'ri diapazonni ta'minlash uchun (rbegin, rend), tayanch iterator oldinga siljib, bir pozitsiyada. Shunday qilib, agar r teskari iterator bo'lsa, unda & * r == & * prev (r.base ()) ifodasi to'g'ri bo'ladi. Siz make -reverse_iterator funktsiyasidan (C ++ 14 standartida kiritilgan) foydalanib, boshqa joydan qaytaruvchi iteratorni "joyida" yaratishingiz mumkin.

Download 1,96 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish