Amaliy ish №4
Mavzu: Аssotsiativ konteynerlar (set , multiset). Tartiblanmagan assotsiativ konteynerlar (unordered_set, unordered_multiset)
Ishning maqsadi: Аssotsiativ konteynerlar, tartiblanmagan assotsiativ konteynerlar (unordered_set, unordered_map, unordered_multiset, unordered_multimap) bilan ishlash.
Assotsiativ konteynerlar (massivlar)
Assotsiativ konteynerlar tezkor qidiruv qobiliyatiga ega bo'lgan buyurtma qilingan ma'lumotlar tuzilishini (O (log n) murakkabligi bilan) amalga oshiradi.
Assotsiativ konteynerlar:
set - kalit bo'yicha tartiblangan noyob kalitlarning to'plami.
map - kalitlarga ajratilgan kalit-qiymat juftliklari to'plami, kalitlar
noyobdir.
multiset – kalitlar bo’yicha tartiblangan to’plam.
multimap - kalitlar bo’yicha tartiblangan, kalit-qiymat juftliklari
to'plami.
SET sinfi
C ++ standart kutubxonasining konteyner sinfidan, ma'lumotlar to'plamidan ma'lumotlarni saqlash va olish uchun foydalaniladi. Bunda elementlarning qiymatlari noyob bo'lishi kerak va ular asosiy ma'lumotlar sifatida xizmat qilishi kerak, ularga ko'ra ma'lumotlar avtomatik ravishda buyurtma qilinadi. To'plamdagi elementning qiymatini to'g'ridan-to'g'ri o'zgartirish mumkin emas. Buning o'rniga eski qiymatlarni o'chirib tashlab, yangi qiymatlar bilan elementlarni joylashtirish kerak.
template class Traits=less,
class Allocator=allocator>
class set
Konteyner turini tanlash, odatda, ilova talab qiladigan qidirish va qo'shib qo'yish turiga asoslangan bo'lishi kerak. Assotsiativ konteynerlar qidirish, kiritish va yo'q qilish operatsiyalari uchun optimallashtirilgan. Ushbu operatsiyalarni aniq qo'llab-quvvatlaydigan a'zo funktsiyalari samarali va o'rtacha hisobda ularni konteynerdagi elementlar sonining logarifmiga mutanosib ravishda bajaradi. Elementlarni kiritishda iteratorlar ishlatilmaydi hamda elementlarni o'chirish iteratorlar yordamida amalga oshiriladi.
Do'stlaringiz bilan baham: |