1-amaliy mashg’ulot Mavzu: Dasturlash tillarida ma’lumotlarning standart turlari. Funksiyalarni amalga oshirish
Download 223.81 Kb.
|
1-2-amaliy (1)
To‘plamlar. To‘plam bu bir xil toifadagi elementlarning tartibsiz majmuasidir va unda elementlar takrorlanmas bo‘ladi. To‘plam ustida bajariladigan amallar quyidagilar: element kiritish, o‘chirish, elementlar sonini aniqlash, bo‘shlikka tekshirish. To‘plamni C++ da quyidagicha e’lon qilinadi:
set for(int i = 1; i <= 100; i++) { s.insert(i); // to‘plamga element kiritish } s.insert(42); // 42 to‘plamda avjudligi sababli hech nima yuz bermaydi for(int i = 2; i <= 100; i += 2) { s.remove(i); // juft sonlarni o‘chiramiz } // set::size() funksiyasi unsigned int toifasida qiymat qaytargani uchun uni int toifasiga o‘giramiz int N = int(s.size()); // N=50 To‘plamda push_back() funksiyasi yo‘q. Chunki unda elementlar tartibsiz va indeks degan tushuncha yo‘q. Shu sababli to‘plam elementlarini iterator bilan chiqarish mumkin. set ... // S to‘plam elementlari yig‘indisini hisoblaymiz intr = 0; for(set r+=(*it); To‘plam bilan ishlashning afzalligi tezlikdir.Ayniqsa, qidiruvda.Set::find() funksiyasi 1 ta argumentga ega va uning qaytaradigan qiymati yoki topilgan elementni ko‘rsatadi, yoki end() iteratoriga teng bo‘ladi. set ... if(s.find(42) != s.end()) { // 42 mavjud } else { // 42 mavjud emas } To‘plamdan elementni o‘chirish uchun erase() funksiyasidan foydalaniladi. set ... s.insert(54); ... s.erase(29); s.erase(s.find(57)); Bu funksiyaning oraliqli ko‘rinishi ham mavjud: set ... set it1 = s.find(10); it2 = s.find(100); if(...) { s.erase(it1, it2); // 10 dan 100 gacha bo‘lgan elementlar //o‘chiriladi(10,100 o‘chirilmaydi) } else { // it2 iteratorni bitta element keying suramiz // set::iterator uchun += operatori qo‘llanilmaydi, lekin ++ va – //ishlatilishi mumkin it2++; s.erase(it1, it2); } To‘plamni e’lon qilishning huddi vektordagi kabi oraliqli konstruktori ham mavjud: int data[5] = { 5, 1, 4, 2, 3 }; set Download 223.81 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling