XORAZM – 2023 Mavzu: Assotsiativ konteynerlar 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.
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.
Set sinfi sintaksisi: 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.