Tiplarni dinamik tarzda
Funktorlarning ko‘llanilishi
Download 1.83 Mb.
|
Tiplarni dinamik tarzda
Funktorlarning ko‘llanilishi. Funktor so‘zi C++ da “funksional obʻyektlar” ning qisqartmasidan olingan. C++ da funksional obʻyekt - operator() bilan aniqlangan sinfning nusxasi hisoblanadi. Agar C++ sinfi operator() aniqlasangiz, u funksiya kabi ishladi, ammo holatni saqlay olmaydi. Masalan, 4.11-dasturga qarang.
4.11-dastur. Operator()ni qayta ishlatish.
Dasturda sf obʻyekt bo‘lishidan qaʻtiy nazar sf() funksiyasini chaqiramiz. Chunki SimpleFunctop sinfida operator() aniqlangan. Ko‘p hollarda STL kutubxonasining taqqoslash va xatolik funksiyasining algoritmlarida funktorlar C++ da predikatlar sifatida ishlatiladi. Faraz qilaymiz, sonlar ketma ketligi berilgan. Bu ketma ketlikdagi barcha juft sonlar va toq sonlar yig‘indisini hisoblash kerak bo‘lsin. Bu masalani yechish uchun funktor va for_each algoritmidan foydalanish mumkin. 4.12-dastur. Funktor va for_each algoritmidan foydalanish.
Dasturda for_each da EvenOddFunctor sinf obʻyekti berilgan. for_each my_list bo‘yicha ketma ket o‘tganda funktor funksiyani chaqirmoqda. Har takrorlanishda evenodd funktor nusxasini qaytaradi. Evenodd funktor esa juft yoki toq elmentlarni yig‘indisini saqlaydi. Download 1.83 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling