Маълумотлар тузилмаси ва алгоритми 2 deadline 3 4 2
Set bilan bog'liq ba'zi bir asosiy funktsiyalar: begin () - to'plamdagi birinchi elementga iteratorni qaytaradi.
end () - iteratorni to'plamdagi oxirgi elementdan keyingi nazariy elementga qaytaradi.
size () - to'plamdagi elementlar sonini qaytaradi.
max_size () - To'plam sig'adigan elementlarning maksimal sonini qaytaradi.
empty () - To'siq bo'sh yoki yo'qligini qaytaradi.
#include #include #include using namespace std;
int main()
{
// bo’sh Set container
set > s1;
// elementlarni tasodifiy tartibda joylashtiring
s1.insert(40);
s1.insert(30);
s1.insert(60);
s1.insert(20);
s1.insert(50);
s1.insert(50); // faqat bitta 50 Setga qo'shiladi
s1.insert(10);
// s1 Setni ekranga chiqarish
set > :: iterator itr;
cout << "\S1 to'plami: ";
for (itr = s1.begin(); itr != s1.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
/*___________________________________________________________*/
// elementlarni s1 dan s2 gacha ajratish
set s2(s1.begin(), s1.end());
// set s2 dagi barcha elementlarni ekranga chiqarish
cout << "\nS1 dan keyingi s2 Set: ";
for (itr = s2.begin(); itr != s2.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
/*___________________________________________________________*/
// s2 Setda 30 gacha bo'lgan barcha elementlarni olib tashlash
cout << "\n30 dan kam bo'lgan elementlarni olib tashlaganidan keyin s2: ";
s2.erase(s2.begin(), s2.find(30));
for (itr = s2.begin(); itr != s2.end(); ++itr)
{
cout << '\t' << *itr;
}
/*___________________________________________________________*/
// s2 qiymati 50 bo'lgan elementni olib tashlash
int num;
num = s2.erase (50);
cout << "\ns2.erase(50) : ";
cout << num << " uchirildi \t" ;
for (itr = s2.begin(); itr != s2.end(); ++itr)
{
cout << '\t' << *itr;
}
cout << endl;
/*___________________________________________________________*/
//s1 to'plami uchun pastki chegara va yuqori chegara
cout << "s1.lower_bound(40) : "
<< *s1.lower_bound(40) << endl;
cout << "s1.upper_bound(40) : "
<< *s1.upper_bound(40) << endl;
// s2 to'plami uchun pastki chegara va yuqori chegara
cout << "s2.lower_bound(40) : "
<< *s2.lower_bound(40) << endl;
cout << "s2.upper_bound(40) : "
<< *s2.upper_bound(40) << endl;
return 0;
}