I. NAZARIY QISM 1.1. Vektor funksiya parametrlari haqida ma’lumotlar Ob'ekt ob'ektlarini saqlashni tashkil etish uchun C ++ Standart kutubxonada konteynerlar idishlari deb nomlangan bir qator sinf shablonlarini taqdim etadi. Standart idishlar ma'lum birlashmalarga ega, ularda ba'zi hollarda ular bilan ishlaydigan kodni o'zgartirmasdan boshqasi bilan bitta idishni almashtirishi mumkin. Standard bilan mos keladigan konturlarni ta'minlaydigan uchinchi uchinchigartli kutubxonalar mavjud (masalan, kutubxonalar to'plamidan).
Konteyner unga joylashtirilgan ob'ektlarni saqlash usulini (konteyner elementlari) va ularning mavjudligini tekshiradi. Idish yo'q qilinganida, u tomonidan saqlanadigan barcha elementlar ham vayron qilingan (konteynerni buzuvchi).
Eng mashhur konteyner std :: Vektor - bu ish bilan bag'ishlangan "vektor". "Vektor" nomi tarixiy ravishda rivojlanib, "Dinamik qator" degan ma'noni anglatadi "Dinamik qator" degan ma'noni anglatadi, shuningdek, matematik ma'noda vektor emas.
Vektor - bu sinf shabloni va birinchi (va yagona majburiy) parametr saqlangan ob'ektlarning turini qabul qiladi: Std :: Std :: Strel - chiziqlar vektori , va boshqalar.
Vektorga kirish uchun standart vektorli sarlavha faylini ulash kerak:
#include Shablonlar
Tempet Temapet C ++ dasturlash tilining dizayni bo'lib, bu sizning
funktsiyalarni (funktsiyalar shablonlari funktsiyalari) va turlarini (funktsiyalar shablonlari funktsiyalari) parametrlari yoki turlari bilan parametrlar (soniyalar, belgilar yoki havolalar) bilan belgilash imkonini beradi. Shablon parametrlarini almashtirish kompilyatsiya paytida amalga oshiriladi. Zaktaning natijasi aniq funktsiyalar (funktsiyalar shablonlari) yoki turlardan (sinf shablonlaridan).
Ushbu ta'rif, misollar bilan tushuntirish osonroq.
Biz kvadratni qurish funktsiyasini (soddalik uchun) yozamiz.
Ikkita SQR (ikki x)
{
X * x ni qaytaring;
}
Tarkibni tanlash parametr sifatida va funktsiya natijasi juda o'zboshimchalik bilan. Agar biz turdagi va ishlamayotgan nuqta bilan biron bir turdagi va keraksiz o'zgarishlarni o'rnatsak-chi?
IR SQR (int x)
{
X * x ni qaytaring;
}
Xuddi shu funktsiya har qanday raqamli raqam uchun yozilishi mumkin.
Wec_t SQR (E'lon_t x)
{
X * x ni qaytaring;
}
Shubhasiz, turli xil funktsiyani har xil turlarga klonlash juda mazmunli emas. C ++ ushbu vaziyatdan odatiy chiqish funktsiya shablonining ta'rifi.