Iteratorlar bilan ishlash va turlari


Download 1.72 Mb.
bet2/3
Sana20.12.2022
Hajmi1.72 Mb.
#1037657
1   2   3
Bog'liq
Ganiyev Laziz

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)
Funksiyalar.STL funksiya chaqiruvi operatorini ortiqcha yuklaydigan sinflarni o'z ichiga oladi. Bunday sinflarning misollari funksiya ob'ektlari yoki funktorlar deb ataladi. Funktorlar o'tkaziladigan parametrlar yordamida bog'langan funktsiyaning ishlashini moslashtirishga imkon beradi.Funktorlar funksiya emas. Faqat bitta argumentni oladigan funktsiyani ko'rib chiqing. Biroq, ushbu funktsiyani chaqirishda biz ushbu funktsiyaga o'tmoqchi bo'lgan juda ko'p ma'lumotlarga egamiz, lekin biz buni qila olmaymiz, chunki u faqat bitta parametrni qabul qiladi. Nima qilish mumkin? Aniq javoblardan biri global o'zgaruvchilar bo'lishi mumkin. Biroq, yaxshi kodlash amaliyotlari global o'zgaruvchilardan foydalanishni qo'llab-quvvatlamaydi va ular faqat boshqa muqobil bo'lmaganda foydalanish kerakligini aytadi. Funktorlar - bu funksiya yoki funktsiya ko'rsatkichi sifatida ko'rib chiqilishi mumkin bo'lgan ob'ektlar. Funktorlar ko'pincha STL bilan birgalikda quyidagi stsenariyda qo'llaniladi:


Download 1.72 Mb.

Do'stlaringiz bilan baham:
1   2   3




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