Muhammad al-xorazmiy nomidagi toshkent axborot texnoligiyalar universiteti qarshi filliali



Download 0,61 Mb.
bet5/10
Sana27.05.2023
Hajmi0,61 Mb.
#944398
1   2   3   4   5   6   7   8   9   10
Bog'liq
Dasturlash 2 mustaqil ish 2 (1)

#include

  • #include

  • #include

  • #include

  • using namespace System;

  • using namespace std;

  • int main()

  • { srand(time(NULL));

  • set s; int n;

  • cout<<"Elementlar sonini: "; cin>>n;

  • multiset M, M2;

  • for (int i = 0; i < n; i++)

  • { int j = rand()%n+n; M.insert(j);

  • j = rand()%n+n; M2.insert(j);

    16. }

    1. auto k2 = M.begin();

    2. set s2;

    3. for (int i = 0; i < n; i++)

    20. {
    21. s2.insert(*k2); k2++;
    22. }

    1. cout<elementlari:"<

    2. for (auto i=M.begin(); i!=M.end(); i++)

    25. {
    26. cout<<*i<<" ";
    27. }

    1. cout<

    2. cout<elementlari:"<

    3. for (auto i=M2.begin(); i!=M2.end(); i++)

    31. {
    32. cout<<*i<<" ";
    33. }

    1. cout< ning elementlari M2 to'plamda qatnashganlari soni:"<

    2. int soni=0;

    3. for (auto i=s2.begin(); i!=s2.end(); i++)

    37. {
    38. for (auto j=M2.begin(); j!=M2.end(); j++)
    39. {
    40. if(M2.count(*i)){
    41. if(*i==*j) {soni++; }
    42. }
    43. }

    1. if(soni>0)cout<<*i<<" -"<"<

    2. else {cout<<*i<<" - qatnashmagan "<

    3. soni = 0;

    47. }

    1. //cout<

    2. auto k = M.begin();

    3. auto l = M2.begin();

    4. for (int i = 0; i < n; i++)

    52. {

    1. s.insert(*k);k++;

    2. s.insert(*l); l++;

    55. }

    1. cout<

    2. cout<elementlari:"<

    3. for (auto i=s.begin(); i!=s.end(); i++)

    59. {
    60. cout<<*i<<" ";
    61. }

    1. getchar(); getchar();

    2. return 0;

    64. }
    Dastur natijasi:
    Elementlar sonini: 25

    M to'plam elementlari:


    25 27 27 27 27 28 29 30 31 31 31 32 33 33 35 35 37 37 40 42 42 43 43 47 48

    M2 to'plam elementlari:


    26 27 30 31 31 31 31 34 35 37 38 39 42 43 45 45 45 46 46 46 46 47 47 49 49

    M1 ning elementlari M2 to'plamda qatnashganlari soni: 25 - qatnashmagan



    1. -1 marta

    2. - qatnashmagan

    3. - qatnashmagan

    4. -1 marta

    5. -4 marta

    6. - qatnashmagan

    7. - qatnashmagan

    35 -1 marta
    37 -1 marta
    40 - qatnashmagan

    1. -1 marta

    2. -1 marta

    1. -2 marta

    2. - qatnashmagan

    Saralangan to'plam elementlari:
    25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 42 43 45 46 47 48 49
    map sinfi

    Iteratorlar tomonidan ko'rsatilgan elementlar orasidagi diapazonda map ning elementlar sonini ifodalash uchun ishlatilishi mumkin bo'lgan imzolangan butun son. farq_type - bu konteyner iteratorlari yordamida kamaytirish yoki ko'paytirish orqali qaytariladigan tur. differ_type odatda birinchi va oxirgi iteratorlar orasidagi [firs, last] oralig'idagi elementlar sonini ifodalash uchun ishlatiladi.
    map va multimap sinflaridan foydalanib, amaliy dasturlar yaratish


    Ishning maqsadi: C++ dasturlash tilida map va mulmap sinflari va uning metodlaridan foydalanish ko’nikmalarini egallsh.
    Masalaning qo’yilishi:
    map va multimap asosida yaratilgan to’plam elementlarini map va mutimap
    ning maxsus funksiyalari yordamida qayta ishlash.
    Masala:
    Talabalarning haqida (familiya, ismi va stipendiyasi) string va float turidagi to’plam berilgan. Familiyasi yoki ismi to’liq yozilganlar va stipendiyasi N ga teng bo’lganlaridan 2- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing.
    Masalani yechish goyasi:
    map konteyneri to’plami yaratiladi. map ning insert(pair('a',10))
    iteratoridan foydalanib, A to’plamga qiymatlar o’zlashtiriladi.
    Dastur matni:

      1. #include "stdafx.h"

      2. #include

      3. #include

      4. #include

      5. using namespace System;

      6. using namespace std;

      7. int main()

      8. { map int> s; int n;

      9. cout<<"Talabalar sonini kiriting: "; cin>>n; cin.ignore();

      10. multimap M, M2;

      11. for (int i = 0; i < n; i++)

      12. { string St;

      13. int step;

      14. cout< - talaba ma'lumotlarini kiriting:"<

      15. cout<<"Fam, ismi: "; getline(cin,St);

      16. cout<<"Stipendiyasi: "; cin>>step; cin.ignore();

      17. s.insert(pair int>(St,step));

      18. M.insert(pair int>(St,step));

    19. }

    1. string S;

    2. int N;

    3. cout<<"Qanday stipendiya oladigan talaba haqida ma'lumot kerak?: ";

    4. cin>>N;

    5. int k=0;

    6. for (auto it = M.begin(); it != M.end(); ++it){

    7. S = it->first;

    8. if(S.find(" ") && it->second == N){

    9. M2.insert(pair int>(S,N)); cout<<"bor"<

    29. }

    1. cout<<"So'rov Natijasi:"<

    2. for (auto it = M2.begin(); it != M2.end(); ++it){

    3. cout<first<<" "<>second<

    33. }

    1. getchar(); getchar();

    2. return 0;}

    Dastur natijasi:
    Talabalar sonini kiriting: 3

    1. - talaba ma'lumotlarini kiriting:

    Fam, ismi: Mallayev Oybek Stipendiyasi: 400000

    1. - talaba ma'lumotlarini kiriting:

    Fam, ismi: Ishniyazov Odil Stipendiyasi: 500000

    1. - talaba ma'lumotlarini kiriting:

    Fam, ismi: ABdurahmonov Stipendiyasi: 300000
    Qanday stipendiya oladigan talaba haqida ma'lumot kerak?: 400000 bor
    So'rov Natijasi:
    Mallayev Oybek 400000


    4. Tartiblanmagan assotsiativ konteynerlar
    Tartibga solinmagan assotsiativ konteynerlar tezda qidirish qobiliyatiga ega (buzilgan) ma'lumotlar tuzilmalarini (o'rtacha murakkabligi O (1), eng yomon holatda O (n)) tashkil etadi.
    unordered_set (C++11) - Noyob kalitlar, xash-kalitlar to'plami. unordered_map(C++11) - Kalit-qiymat juftlari to'plami, to'ldirilgan kalitlar, kalitlar noyobdir.
    unordered_multiset(C++11) - Kalitlar to'plami, hash-kalitlar.
    unordered_multimap(C++11) - unordered_set sinfi:

      • Snf shabloni:

    template< class Key, class Hash = std::hash, class KeyEqual = std::equal_to,
    class Allocator = std::allocator> class unordered_set;
    Tartiblanmagan to'plam bu ko'p turdagi noyob obyektlarni o'z ichiga olgan assotsiativ konteynerdir. Qidiruv, qo'shish va o'chirish o'rtacha doimiy vaqt murakkabligiga ega.
    unordered_set iteratorlari:

    Nomi

    Izoh

    begin, cbegin

    Birinchi elementga iteratorni qaytaradi.

    end, cend

    Iteratorni oxirgi elementga qaytaradi.

    empty

    Konteynerni bo’shlikka tekshirish.

    size

    Konteynerning elementlar sonini qaytaradi.

    max_size

    Konteynerning ruxsat etilgan elementlarning maksimal sonini qaytaradi.



    unordered_set ning funksiya a’zolari:

    Nomi

    Izoh

    at

    Ko'rsatilgan elementga indeks tekshiruvi bilan kirishni ta'minlaydi

    operator[]

    Belgilangan elementga kirishni ta'minlaydi

    front

    Birinchi elementga kirishni ta'minlaydi

    back

    oxirgi elementga kirishni ta'minlaydi

    data (C++11)

    Massivning birinchi haqiqiy elementiga ko'rsatgichni qaytaradi



    unordered_set ning funksiya a’zolari

    Nomi

    Izoh

    get_allocator

    Bog'langan ajratuvchini qaytaradi.

    operator=

    Konteynerdagi qiymatlarni o'rnatadi



    unordered_set ning modifikatorlari:

    Nomi

    Izoh

    clear

    Konteynerni tozalaydi.

    insert

    Konteynerga element qo’shadi.

    emplace

    Elementlarni "joyida" quradi va berilgan pozitsiyadan boshlab ularni joylashtiradi.

    emplace_hint

    Foydalanish joyidagi struktura elementlari.

    erase

    Konteynerdan element ochirish.

    swap

    Tarkibni almashtirish.

    count

    Muayyan kalitga mos keladigan elementlar sonini qaytaradi.

    find

    Ma'lum bir kalitga ega bo'lgan elementni topadi.

    equal_range

    Ma'lum bir kalit uchun elementlar to'plamini qaytaradi.

    bucket_count

    Buketlar sonini qaytaradi.

    max_bucket_count

    Buketlar sonini maksimalini qaytaradi.

    bucket_size

    Aniq buketdagi elementlar soni.

    bucket

    Aniq kalitlar uchun buket qaytarish.



    Hash Table bilan ishlovchi funksiyalar:



    Nomi

    Izoh

    load_factor

    Bir buketdagi elementlarning o'rtacha sonini qaytaradi.

    max_load_factor

    O’rtach elementlar sonini maksimal boshqarish.

    rehash

    Talab qilinganidan kam bo'lmagan holda hesh jadvalini qayta tiklash.

    reserve

    Kamida belgilangan sonlar uchun joy saqlaydi. Bu hash jadvalini tiklaydi.

    hash_function

    Element qiymatlarini xesh qilish uchun ishlatiladigan funktsiya.

    key_eq

    Kalitlarning tengligini tekshirish funktsiyasini qaytaradi.




    Download 0,61 Mb.

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




    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