Shablonlarga bir nechta argumentlar bo'lishi mumkinmi? Ha, oddiy parametrlar singari, shablonlarga argument sifatida bir nechta ma'lumotlar turlarini o'tkazishimiz mumkin. Quyidagi misol buni ko'rsatadi
Shablon argumentlari uchun standart qiymatni belgilashimiz mumkinmi? Ha, oddiy parametrlar singari, shablonlarga standart argumentlarni ham belgilashimiz mumkin. Quyidagi misol buni ko'rsatadi.
STL ya'niy The Standart Template Library umumiy dasturlash maʼlumotlar tuzilmalari va roʻyxatlar, steklar, massivlar va boshqalar kabi funksiyalarni taʼminlash uchun C++ shablon sinflari toʻplamidir. Bu konteyner sinflari, algoritmlar va iteratorlar kutubxonasi. Bu umumlashtirilgan kutubxona va shuning uchun uning tarkibiy qismlari parametrlangan. Shablon sinflari bo'yicha ishchi bilim STL bilan ishlash uchun zaruriy shartdir.
Algoritmlar.Sarlavha algoritmi, ayniqsa, elementlar diapazonlarida foydalanish uchun mo'ljallangan funksiyalar to'plamini belgilaydi. Ular konteynerlarda ishlaydi va konteynerlar mazmuni uchun turli operatsiyalar uchun vositalarni taqdim etadi.
Masalan: sort()
Saralash ma'lumotlarga qo'llaniladigan eng asosiy funktsiyalardan biridir. Bu ma'lumotlarning ko'payishi yoki kamayishi mumkin bo'lgan ma'lum bir tarzda tartibga solinishini anglatadi. C++ STL da sort() nomi bilan o'rnatilgan funksiya mavjud.
Bu funksiya IntroSort-dan ichki foydalanadi. Batafsilroq u QuickSort, HeapSort va InsertionSort gibridlari yordamida amalga oshiriladi. Odatiy bo'lib, u QuickSort-dan foydalanadi, lekin agar QuickSort nohaq qismlarga bo'linsa va N*logN vaqtdan ko'proq vaqt talab qilsa, u HeapSort-ga o'tadi va massiv o'lchami juda kichik bo'lganda, u InsertionSort rejimiga o'tadi
Konteynerlar.Konteynerlar yoki konteyner sinflari ob'ektlar va ma'lumotlarni saqlaydi. Jami yettita standart “birinchi toifa” konteyner sinfi va uchta konteyner adapter sinfi va ushbu konteynerlar yoki konteyner adapterlariga kirishni taʼminlovchi yettita sarlavha fayli mavjud.Ketma-ket konteynerlar: ketma-ket kirish mumkin bo'lgan ma'lumotlar tuzilmalarini amalga oshirish.
vector list deque arrays forward_list (C++ 11 da kiritilgan)
Konteyner adapterlari: ketma-ket konteynerlar uchun boshqa interfeysni ta'minlaydi.
queue priority_queue stack
Assotsiativ konteynerlar: tezda qidirilishi mumkin bo'lgan tartiblangan ma'lumotlar tuzilmalarini amalga oshirish (O(log n) murakkabligi).
set
multiset
map
multimap
Tartibga solinmagan assotsiativ konteynerlar: tezda qidirilishi mumkin bo'lgan tartibsiz ma'lumotlar tuzilmalarini amalga oshirish
unordered_set (C++ 11 da kiritilgan)
unordered_multiset (C++ 11 da kiritilgan)
unordered_map (C++ 11 da kiritilgan)
unordered_multimap (C++ 11 da kiritilgan)