Zbekiston respublikasi raqamli texnologiyalari vazirligi muhammad al-xorazmiy nomidagi



Yüklə 51,86 Kb.
səhifə2/3
tarix27.12.2023
ölçüsü51,86 Kb.
#199894
1   2   3
msql11

#include

  • #include

  • int main() {

  • std::vector users = {"Ali", "Vali", "Hasan", "Husan"};

  • std::vector::iterator it;

  • for (it = users.begin(); it != users.end(); it++) {

  • std::cout << *it << std::endl;

  • }

  • return 0;

  • }

    bir elementi qaytaradi va * elementining simvol taxminiyligi orqali yoziladi.

    • Bu kod, "std" nomlar fazosida to'plam yaratadi va ulariga chet elon qiladi, undan foydalanib "users" degan ro'yxatni yaratadi. Bunda "std::vector::iterator" — "users" to'plamini tekshirish va elementlariga topshirish uchun iterator yaratiladi. Keyin, iterator for tsikli yordamida aylanadi, har bir elementi qaytaradi va * elementining simvol taxminiyligi orqali yoziladi.

    Iteratorlar.
    Nomidan ko'rinib turibdiki, iteratorlar qiymatlar ketma-ketligi ustida ishlash uchun ishlatiladi. Ular STLda umumiylikka imkon beruvchi asosiy xususiyatdir. Iteratorlar STL konteynerlarining xotira manzillariga ishora qilish uchun ishlatiladi. Ular birinchi navbatda raqamlar, belgilar va boshqalar ketma-ketlikda qo'llaniladi. Ular dasturning murakkabligi va bajarilish vaqtini qisqartiradi.
    1. begin() - Bu funksiya konteynerning boshlanish holatini qaytarish uchun ishlatiladi.
    2. end() - Bu funksiya konteynerning oxirgi holatini qaytarish uchun ishlatiladi.
    // C++ code to demonstrate the working of // iterator, begin() and end() #include #include // for iterators #include // for vectors using namespace std;
    int main(){ vector ar = { 1, 2, 3, 4, 5 };
    // Declaring iterator to a vector vector::iterator ptr;
    // Displaying vector elements using begin() and end() cout << "The vector elements are : ";
    for (ptr = ar.begin();
    ptr < ar.end();
    ptr++) cout << *ptr << " ";
    return 0; }
    3. advance() - Bu funksiya iterator oʻrnini argumentlarida koʻrsatilgan raqamgacha oshirish uchun ishlatiladi.
    4. next() - Bu funksiya iterator oʻz argumentlarida koʻrsatilgan pozitsiyalarni ilgari surgandan soʻng koʻrsatadigan yangi iteratorni qaytaradi.
    5. prev() - Bu funksiya iterator o'z argumentlarida eslatib o'tilgan pozitsiyalarni kamaytirgandan keyin ko'rsatadigan yangi iteratorni qaytaradi.
    6. inserter() :- Bu funksiya elementlarni konteynerning istalgan joyiga kiritish uchun ishlatiladi. U 2 ta argumentni, konteyner va iteratorni elementlarni kiritish kerak bo'lgan joyni qabul qiladi.
    Std::find, std::equal, std::count kabi turli xil STL algoritmlarining shablon ta'rifini ko'rib chiqqandan so'ng, siz Input Iterator tipidagi ob'ektlardan iborat shablon ta'rifini topgan bo'lishingiz kerak. Xo'sh, ular nima va ular nima uchun ishlatiladi?
    Input iteratorlari C++ standart kutubxonasida mavjud bo'lgan iteratorlarning beshta asosiy turidan biri bo'lib, boshqalari Chiqish iteratorlari, Oldinga iterator, Ikki yo'nalishli iterator va Tasodifiy kirish iteratorlaridir.
    Input iteratorlari mavjud bo'lgan barcha iteratorlar orasida eng zaif va eng sodda deb hisoblanadi, ularning funksionalligi va ular yordamida nimaga erishish mumkin. Ular ketma-ket kiritish operatsiyalarida ishlatilishi mumkin bo'lgan iteratorlar bo'lib, bunda iterator tomonidan ko'rsatilgan har bir qiymat faqat bir marta o'qiladi va keyin iterator oshiriladi.

    Std::copy, std::move, std::transform kabi turli xil STL algoritmlarining shablon ta'rifini ko'rib chiqqandan so'ng, siz Output Iterator tipidagi ob'ektlardan iborat shablon ta'rifini topgan bo'lishingiz kerak. Xo'sh, ular nima va ular nima uchun ishlatiladi? Output iteratorlari C++ standart kutubxonasida mavjud bo'lgan iteratorlarning beshta asosiy turidan biri bo'lib, boshqalari kirish iteratorlari, oldinga yo'naltiruvchi iteratorlar, ikki yo'nalishli iteratorlar va tasodifiy kirish iteratorlaridir.Output iteratorlari kiritish iteratorlarining teskari funksiyasini bajaradiganligi sababli, kirish takrorlovchilarining mutlaqo teskarisi hisoblanadi. Ularga qiymatlar ketma-ketlikda tayinlanishi mumkin, lekin qiymatlarga kirishning teskarisini bajaradigan va qiymatlarni belgilash mumkin bo'lmagan kirish iteratorlaridan farqli o'laroq, qiymatlarga kirish uchun foydalanilmaydi. Shunday qilib, input va ouput iteratorlari bir-birini to'ldiradi, deb aytishimiz mumkin.


    Std::search, std::search_n, std::lower_bound kabi turli xil STL algoritmlarining shablon ta'rifini ko'rib chiqqandan so'ng, siz Forward Iterator tipidagi ob'ektlardan iborat shablon ta'rifini topgan bo'lishingiz kerak. Xo'sh, ular nima va ular nima uchun ishlatiladi? Forward iteratorlar C++ standart kutubxonasida mavjud boʻlgan iteratorlarning beshta asosiy turlaridan biri boʻlib, boshqalari kirish iteratorlari, chiqish iteratorlari, ikki yoʻnalishli iteratorlar va tasodifiy kirish iteratorlaridir. Forward iteratorlar kirish va chiqish iteratorlarining kombinatsiyasi hisoblanadi. U ikkalasining funksionalligini qo'llab-quvvatlaydi. Bu qiymatlarga kirish va o'zgartirish imkonini beradi.
    Std::reverse, std::next_permutation va std::reverse_copy kabi turli xil STL algoritmlarining shablon ta'rifini ko'rib chiqqandan so'ng, ularning ikki tomonlama iterator tipidagi ob'ektlardan iborat shablon ta'rifini topgan bo'lishingiz kerak. Xo'sh, ular nima va ular nima uchun ishlatiladi? Bidirectional iteratorlar C++ standart kutubxonasida mavjud boʻlgan iteratorlarning beshta asosiy turlaridan biri boʻlib, boshqalari kirish iteratorlari, chiqish iteratorlari, Forward iteratorlari va tasodifiy kirish iteratorlaridir.

    Bidirectional iteratorlar - bu har ikki yo'nalishda (oxiriga va boshiga) diapazondagi elementlar ketma-ketligiga kirish uchun ishlatilishi mumkin bo'lgan iteratorlar. Ular oldinga iteratorlarga o'xshaydi, faqat oldinga yo'nalishda harakatlanishi mumkin bo'lgan oldinga iteratorlardan farqli o'laroq, ular orqaga yo'nalishda ham harakatlanishi mumkin.Shuni ta'kidlash kerakki, ro'yxat, xarita, multimap, to'plam va multiset kabi konteynerlar bidirectional iteratorlarni qo'llab-quvvatlaydi. Bu shuni anglatadiki, agar biz ular uchun oddiy iteratorlarni e'lon qilsak va ular vektorlar va deque holatlarida bo'lgani kabi, ular ikki tomonlama iteratorlar bo'ladi, ular tasodifiy kirish iteratorlaridir.
    Standart algoritmlar va iteratorlardan foydalanib,
    amaliy dasturlar yaratish
    Ishning maqsadi: C++ dasturlash tilida Standart algoritmlar va iteratorlar
    sinflari va uning qayta yuklangan turlaridan foydalanish ko‘nikmalarini egallsh.
    Masalaning qo‘yilishi:
    Standart algoritmlar va iteratorlar asosida yaratilgan to‘plam elementlarini
    copy(from, from_end, to),
    copy_if(from, from_end, to, pred),
    copy_n(from, count, to),
    copy_backward(from, from_end, to_end),
    move(from, from_end, to),
    move_backward(from, from_end, to_end),
    swap_ranges(a, a_end, b),
    fill(to, to_end, value), fill_n(to, n, value),
    generate(to, to_end, gen),
    generate(v.begin(), v.end(), rand),
    generate_n(to, n, gen), reverse(begin, end),
    reverse_copy(from, from_end, to),
    frnd(begin, end, value),
    mismatch(a, a_end, b, b_end, eq),
    max_element(begin, end, comp),
    min_element(begin, end, comp),
    for_each(begin, end, fun),
    replace(begin, end, old_val,
    new_val), remove(begin, end, value),
    remove_if(begin, end, pred),
    sort(begin, end, comp),
    iteratorlar yordamida qayta ishlash.
    Ushbu uchta komponent bir-biri bilan sinergiyada birgalikda ishlaydi va turli xil dasturiy echimlarni qo'llab-quvvatlaydi. Algoritm konteynerlarda saqlanadigan operatsiyani bajarish uchun iteratorlardan foydalanadi.
    Konteyner - bu xotirada ma'lumotlarni uyushgan tartibda saqlaydigan ob'ekt. STL-dagi konteynerlar shablon sinflari tomonidan amalga oshiriladi va shuning uchun har xil turdagi ma'lumotlarni saqlash uchun ularni osonlikcha o'zgartirish va sozlash mumkin. Konteynerlarda joylashgan ma'lumotlarni qayta ishlash uchun ishlatiladigan protsedura algoritm sifatida belgilanadi. STL boshlang'ich, qidirish, nusxalash, saralash va birlashtirish, nusxalash, saralash va birlashtirish kabi vazifalarni qo'llab-quvvatlash uchun juda ko'p turli xil algoritmlarni o'z ichiga oladi. Algoritmlar shablon funktsiyalari bilan amalga oshiriladi.
    Konteynerlar

    STL uchta toifaga birlashtirilgan o'nta konteynerni belgilaydi.
    Vektorlar element kiritilganda yoki o'chirilganda avtomatik ravishda o'lchamlarini o'zgartirish qobiliyatiga ega bo'lgan dinamik massivlar bilan bir xil, ularni saqlash konteyner tomonidan avtomatik ravishda boshqariladi. Vektor elementlari tutashgan omborga joylashtiriladi, shunda ularga iteratorlar yordamida o'tish va o'tish mumkin. Vektorlarda ma'lumotlar oxiriga kiritiladi. Oxirida qo'shish differentsial vaqtni oladi, chunki ba'zida qatorni kengaytirishga ehtiyoj paydo bo'lishi mumkin. Oxirgi elementni olib tashlash faqat doimiy vaqtni oladi, chunki o'lchamlarning o'zgarishi bo'lmaydi.



    Yüklə 51,86 Kb.

    Dostları ilə paylaş:
  • 1   2   3




    Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
    rəhbərliyinə müraciət

    gir | qeydiyyatdan keç
        Ana səhifə


    yükləyin