Mavzuga kirish; Shablonlar nazariyasi; Misol: Umumiy toifa


Download 61.98 Kb.
bet6/9
Sana21.01.2023
Hajmi61.98 Kb.
#1107357
1   2   3   4   5   6   7   8   9
Bog'liq
2) 15- ma\'ruza matni

#include

  • #include

  • using namespace std;




    1. template <typename T>

    2. void sort(T list[], int listSize)

    3. {

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

    5. {

    6. // list[i..listHajm-1] dagi minimumni topish

    7. T currentMin = list[i];

    8. int currentMinIndex = i;




    1. for(int j = i + 1; j < listSize; j++)

    2. {

    3. if (currentMin > list[j])

    4. {

    5. currentMin = list[j];

    6. currentMinIndex = j;

    7. }

    8. }




    1. // list[i] ni list[joriyMinimumIndeks] bilan almashtirish, agar zarur bo`lsa;

    2. if(currentMinIndex != i)

    3. {

    4. list[currentMinIndex] = list[i];

    5. list[i] = currentMin;

    6. }

    7. }

    8. }




    1. template <typename T>

    2. void printArray(const T list[], int listSize)

    3. {

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

    5. {

    6. cout << list[i] << " ";

    7. }

    8. cout << endl;

    9. }




    1. int main()

    2. {

    3. int list1[] = {3, 5, 1, 0, 2, 8, 7};

    4. sort(list1, 7);

    5. printArray(list1, 7);




    1. double list2[] = {3.5, 0.5, 1.4, 0.4, 2.5, 1.8, 4.7};

    2. sort(list2, 7);

    3. printArray(list2, 7);




    1. string list3[]={"Atlanta", "Denver", "Chicago", "Dallas"};

    2. sort(list3, 4);

    3. printArray(list3, 4);




    1. return 0;}

    Natija:

    0 1 2 3 5 7 8
    0.4 0.5 1.4 1.8 2.5 3.5 4.7
    Atlanta Chicago Dallas Denver

    Bu dasturda ikkita funksiya shaboni aniqlangan. sort funksiya shabloni (5-30-qatorlar) massiv elementlari turini belgilab olish uchun T parametridan foydalanadi. double parametri umumiy T parametri bilan almashtirilganligi hisobga olinmaganda, bu funksiya tanlabSaralash funksiyasining o`zginasi.


    printArray funksiya shabloni (32-40-qatorlar) massiv elementlari turini aniqlash uchun T – tur parametrdan foydalanadi. Bu funksiya massivdagi barcha elementlarni konsol oynada chop etadi.
    main funksiya int, double va string qiymatlardagi massivlarni saralash uchun sort funksiyasini chaqiradi (45, 49-, 53-qatorlar) va bu massivlartni chop etish uchun printArray funksiyasini chaqiradi (46-, 50-, 54-qatorlar).
    Maslahat. Umumiy funksiyani aniqlaganingizdan avval, unga mos bo`lgan oddiy funksiyani yozishdan boshlab, keyin uni umumiy funksiyaga o`tkazsangiz yaxshiroq bo`ladi.
    Funksiya shablonlari (function template).

    Shablonlar yordamida umumiy funksiyalar va umumiy classlar yaratish imkoniyati mavjud. Umumiy funksiya va umumiy classlar har xil ma'lumot toifalaridan ularni overload qilmasdan (ko'p kod yozmasdan) foydalanish imkoniyatini beradi. Ya'ni bunda biz har bir toifa uchun alohida funksiya yozishimiz shart bo’lmaydi.


    Shablonlar ikki xil bo'ladi:
    Funksiya shabloni (function template)
    Sinf shabloni (class template)



    Download 61.98 Kb.

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




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