Funktsiya shablonlari. Biz har XIL ma'lumotlar turlari uchun ishlatilishi mumkin bo'lgan umumiy funktsiyani yozamiz. Funktsiya shablonlariga misollar: sort, max, min, printArray max funksiyasi sort –funksiyasi Sinf shablonlari
Muhammad al-Xorazmiy nomidagi Toshkent axborot texnologiyalari universiteti Dasturiy injiniring fakulteti 316-20 guruh talabasi Shamuratov Oralbayning Ma’lumotlar tuzilmasi va algoritmlari fanidan 1-mustaqil ishi
Shablonlar standart kutubxonasining tuzilmasi. Iteratorlar bilan ishlash. Funksiyalar.
Avvalo funksiya shablonlari bu umumiy turlar bilan ishlash mumkin bo’lgan funksiyalardir.Shablon C++ tilida oddiy va shu bilan birga juda kuchli vositadir.Oddiy g'oya ma'lumotlar turini parametr sifatida o'tkazishdir, shunda biz turli xil ma'lumotlar turlari uchun bir xil kodni yozishimiz shart emas.Masalan, dasturiy ta'minot kompaniyasiga turli xil ma'lumotlar turlari uchun sort() kerak bo'lishi mumkin.Bir nechta kodlarni yozish va saqlash o'rniga, biz bitta sort() yozishimiz va ma'lumotlar turini parametr sifatida o'tkazishimiz mumkin.C++ shablonlarni qo'llab-quvvatlash uchun ikkita yangi kalit so'zni qo'shadi: "template" va "typename". Ikkinchi kalit so'z har doim "class" kalit so'zi bilan almashtirilishi mumkin.
Shablonlar qanday ishlaydi?
Shablonlar kompilyator vaqtida kengaytiriladi. Bu makrolarga o'xshaydi.
Farqi shundaki, kompilyator shablonni kengaytirishdan oldin turini tekshiradi.
G'oya oddiy, manba kodi faqat funksiya/sinfni o'z ichiga oladi, lekin tuzilgan kodda bir xil funktsiya/sinfning bir nechta nusxalari bo'lishi mumkin.
Funktsiya shablonlari.Biz har xil ma'lumotlar turlari uchun ishlatilishi mumkin bo'lgan umumiy funktsiyani yozamiz. Funktsiya shablonlariga misollar: sort(), max(), min(), printArray().
max() - funksiyasi
sort() –funksiyasi
Sinf shablonlari.Funktsiya shablonlari kabi sinf shablonlari sinf ma'lumotlar turidan mustaqil bo'lgan narsani aniqlaganda foydali bo'ladi. LinkedList, BinaryTree, Stack, Queue, Array va boshqalar kabi sinflar uchun foydali bo'lishi mumkin.
Quyida Array shablonlari sinfining oddiy misoli keltirilgan.