LABORATORIYA ISHI -10 Mavzu: Foydalanuvchining shablonlari
Ishdan maqsad: Ushbu laboratoriya ishining maqsadi talabalar STL componentlaridan biri xisoblangan Set mavjudligini va ularning samaradorliklarini baholashni o‘rganishlari kerak. Shu asosda konteyner usullarini qiyosiy tahlil qilishlari, C++ dasturlash tilida vektor bilan ishlashni va ularga oid dasturlar tuzishni o‘zlashtirishlari kerak.
Qo‘yilgan masala: Talabalar topshiriq variantiga mos Set yordamida masalani yechish dasturini yaratish ko‘nikmasiga ega bo‘lishlari kerak.
Ish tartibi: Tajriba ishi nazariy ma’lumotlarini o‘rganish;
Berilgan topshiriqning algoritmini ishlab chiqish;
C++ dasturlash muhitida dasturni yaratish;
Natijalarni tekshirish;
Hisobotni tayyorlash va topshirish.
Set - bu Key tipidagi noyob ob'ektlarning saralangan to'plamini o'z ichiga olgan Assotsiativ konteyner. Har bir element faqat bir marta sodir bo'lishi mumkin, shuning uchun uni takrorlashga yo'l qo'yilmaydi.
To'rt turdagi Assotsiativ konteynerlar mavjud: set, multiset, xarita va multimap.
Setdagi elementlarning qiymatini idishda bir marta o'zgartirish mumkin emas, ya'ni elementlar doimo const. Ammo ular idishga solinishi yoki olib tashlanishi mumkin.
O'rnatilgan konteynerlar odatda unordered_set konteynerlarga qaraganda individual elementlarga o'zlarining kalitlari bo'yicha kirishda sekinroq, ammo ular buyurtmalariga binoan pastki to'plamlarda to'g'ridan-to'g'ri takrorlanishga imkon beradi.
Vektor elementlari ustida massiv elementlari ustida bajariladigan amallarni bajarish mumkin. Ma’lumotlarni massivda saqlashda elementlar soni oldindan ma’lum bo’lishi kerak. Ayrim paytlarda massivga nechta element kiritilishi ma’lum bo’lmaydi va o’shanda dinamik dasturlashdan foydalanish kerak bo’ladi, ya’ni massivga qo’shiladigan elementga xotira ajratishga to’g’ri keladi. Shunday hollarda vector klassidan foydalanish mumkin. Vector klassi o’zgaruvchan uzunlikdagi massiv yaratishga yordam beradi. Vektor bu elementlari soni oldindan ma’lum bo’lmagan bir xil toifadagi elementlar ketma-ketligidir. Vektorning massivdan farqi, vector uzunligi oldindan berilmaydi va u dastur bajarilishi mobaynida o’zgarib turadi.
Misol: Butun turda ixtiyoriy elementi bor massiv ichidan juft elementlarini vektorga o’zlashtiring, ularni ekranga chiqaring va vektorning oxirigi elementini o’chirib ekranga chiqaring.
vector v;
int n; cout<<"Massiv elementlarini sonini kirit= ";
cin>>n; int a[n];
for (int i=0;i
{
cin>>a[i];
if(a[i]%2==0)
v.push_back(a[i]);
}
cout<<"Vektor elementlari= ";
for (int i=0;i
cout<
v.pop_back();
cout<<"Oxiringi elementini o'chirish= ";
for (int i=0;i
cout<