Guruh Abdullayev Anvarxoja Iminov Islom Sultonov Davlatbek "Set" To'plamlar bu ma'lum bir tartib bo'yicha noyob elementlarni saqlaydigan konteynerlar


Download 7.17 Kb.
Sana09.05.2023
Hajmi7.17 Kb.
#1448368
Bog'liq
anvar 1


032-21 guruh Abdullayev Anvarxoja Iminov Islom Sultonov Davlatbek "Set" To'plamlar - bu ma'lum bir tartib bo'yicha noyob elementlarni saqlaydigan konteynerlar. To'plamda elementning qiymati ham uni identifikatsiya qiladi (qiymatning o'zi T tipidagi kalitdir ) va har bir qiymat noyob bo'lishi kerak . To'plamdagi elementlarning qiymatini konteynerda bir marta o'zgartirib bo'lmaydi (elementlar har doim const), lekin ularni konteynerga kiritish yoki olib tashlash mumkin. Ichkarida, to'plamdagi elementlar har doim ichki taqqoslash ob'ekti tomonidan ko'rsatilgan aniq qat'iy zaif tartib mezoniga muvofiq tartiblanadi ( qiyoslash turi ). o'rnatilgan idishlar odatda sekinroq unordered_set konteynerlari alohida elementlarga o'z kalitlari orqali kirishlari mumkin , lekin ular buyurtma asosida to'g'ridan-to'g'ri to'plamlarda takrorlash imkonini beradi. To'plamlar odatda ikkilik qidiruv daraxtlari sifatida amalga oshiriladi . Konteyner xususiyatlari Assotsiativ Assotsiativ konteynerlardagi elementlarga konteynerdagi mutlaq joylashuvi bilan emas, balki kaliti bilan havola qilinadi. Buyurtma qilingan Idishdagi elementlar har doim qat'iy tartibga rioya qiladi. Barcha kiritilgan elementlarga shu tartibda joy beriladi. O?rnatish Elementning qiymati, shuningdek, uni aniqlash uchun ishlatiladigan kalitdir . Noyob kalitlar Konteynerdagi ikkita elementda ekvivalent kalit bo'lishi mumkin emas . Ajratuvchidan xabardor Konteyner saqlash ehtiyojlarini dinamik ravishda bajarish uchun ajratuvchi ob'ektdan foydalanadi. Shablon parametrlari T Elementlarning turi. To'plam konteyneridagi har bir element ham ushbu qiymat bilan noyob tarzda aniqlanadi (har bir qiymatning o'zi ham elementning kalitidir). A'zolar turlari sifatida taxalluslangan set::key_type va set::value_type . Taqqoslash Elementlar bilan bir xil turdagi ikkita argumentni oladigan va bool qaytaradigan ikkilik predikat . Comp(a,b) ifodasi , bunda comp bu turdagi ob'ekt va a va b asosiy qiymatlar bo'lsa, agar a funktsiya aniqlagan qat'iy zaif tartibda b dan oldin ketsa, rost qaytariladi . To?plam obyekti ushbu ifodadan elementlarning konteynerdagi tartibini va ikkita element kalitining ekvivalentligini aniqlash uchun foydalanadi (ularni refleksli taqqoslash orqali: ular ekvivalent bo?lsa, ! comp (a,b) && !comp(b,a) ) . a ichida ikkita element yo'q o'rnatilgan konteyner ekvivalent bo'lishi mumkin. Bu funktsiya ko'rsatkichi yoki funksiya ob'ekti bo'lishi mumkin ( misol uchun konstruktorga qarang). Bu sukut bo'yicha kamroq ga o'rnatiladi, bu esa kamroq operatorni ( a qiymat_qiyoslash Shablonning ikkinchi parametri ( solishtiring ) sukut bo'yicha: kamroq ajratuvchi_turi Uchinchi shablon parametri ( Alloc ) sukut bo'yicha: taqsimlovchi ma'lumotnoma allocator_type :: havola standart ajratuvchi uchun : value_type& const_reference allocator_type::const_reference standart ajratuvchi uchun : const value_type& ko'rsatgich allocator_type :: pointer standart ajratuvchi uchun : value_type* const_pointer allocator_type::const_pointer standart ajratuvchi uchun : const value_type* iterator qiymat_turiga ikki tomonlama iterator const_iterator ga aylantirilishi mumkin const_iterator const value_type uchun ikki tomonlama iterator teskari_iterator teskari_iterator const_reverse_iterator teskari_iterator farq_turi imzolangan integral turi, xuddi shunday: iterator_traits::difference_type odatda ptrdiff_t bilan bir xil o'lcham_turi farq_turi ning har qanday manfiy bo'lmagan qiymatini ifodalashi mumkin bo'lgan belgisiz integral turi odatda size_t bilan bir xil A'zo funktsiyalari (konstruktor) Qurilish to'plami (ommaviy a'zolar funktsiyasi) (destruktor) Destruktorni o'rnatish (ommaviy a'zolar funktsiyasi) operator = Konteyner tarkibini nusxalash (ommaviy a'zolar funktsiyasi) Iteratorlar : boshlanishi Iteratorni boshiga qaytarish (ommaviy a'zo funktsiyasi) oxiri Iteratorni oxirigacha qaytarish (ommaviy a'zo funktsiyasi) rboshlang Teskari iteratorni teskari boshiga qaytarish (ommaviy a'zo funktsiyasi) parchalash Teskari iteratorni teskari oxiriga qaytarish (ommaviy a'zo funktsiyasi) cboshlang const_iterator ni boshiga qaytarish (ommaviy a'zo funktsiyasi) cend const_iterator-ni oxirigacha qaytaring (ommaviy a'zolar funktsiyasi) crbegin Const_reverse_iterator ni teskari boshlanishga qaytaring (ommaviy a'zolar funktsiyasi) ishonch const_reverse_iterator ni teskari oxiriga qaytaring (ommaviy a'zolar funktsiyasi) Imkoniyat : bo'sh Konteyner bo'sh yoki yo'qligini tekshirish (jamoat a'zosi funktsiyasi) hajmi Konteyner hajmini qaytarish (ommaviy a'zolar funktsiyasi) maksimal_o?lcham Maksimal hajmni qaytarish (ommaviy a'zolar funktsiyasi) Modifikatorlar : kiritmoq Elementni kiritish (ommaviy a'zo funktsiyasi) o'chirish Elementlarni o?chirish (ommaviy a?zolar funksiyasi) almashtirish Kontentni almashtirish (ommaviy a'zolar funktsiyasi) aniq Kontentni tozalash (ommaviy a'zolar funktsiyasi) joylashtirmoq Elementni qurish va kiritish (ommaviy a'zo funktsiyasi) emplace_shint Maslahat bilan elementni qurish va kiritish (ommaviy a'zo funktsiyasi) Kuzatuvchilar : key_comp Taqqoslash ob'ektini qaytarish (ommaviy a'zo funktsiyasi) qiymat_komp Taqqoslash ob'ektini qaytarish (ommaviy a'zo funktsiyasi) Operatsiyalar : toping Elementga iteratorni oling (ommaviy a'zo funktsiyasi) hisoblash Muayyan qiymatga ega elementlarni hisoblash (ommaviy a'zo funktsiyasi) pastki_chegara Iteratorni pastki chegaraga qaytarish (ommaviy a'zo funktsiyasi) yuqori_chegara Iteratorni yuqori chegaraga qaytarish (ommaviy a'zo funktsiyasi) teng_oraliq Teng elementlar oralig'ini oling (ommaviy a'zolar funktsiyasi) Ajratuvchi : get_allocator Ajratuvchini oling (ommaviy a'zolar funktsiyasi) Misollar 1) #include #include using namespace std; int main() { // Create a set to store integer values set mySet; // Insert values into the set mySet.insert(10); mySet.insert(20); mySet.insert(30); mySet.insert(40); mySet.insert(50); // Check if 30 is in the set if (mySet.count(30) > 0) { cout << "30 is in the set." << endl; } else { cout << "30 is not in the set." << endl; } // Remove a value from the set mySet.erase(40); // Print the remaining values in the set cout << "Set values after removing 40:" << endl; for (int value : mySet) { cout << value << " "; } cout << endl; return 0; }
Download 7.17 Kb.

Do'stlaringiz bilan baham:




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