Tartiblanmagan assosiativ konteynerlar (unordered set, unordered map, unordered multiset, unordered multimap)



Yüklə 196,69 Kb.
səhifə4/9
tarix30.12.2023
ölçüsü196,69 Kb.
#167513
1   2   3   4   5   6   7   8   9
Mavzu assosiativ va tartiblanmagan assosiativ konteynerlar reja-fayllar

iterator ( iterator ) bu – const value_type ko‘rsatuvchi domiy ikki tomnlama iterator. Aniq tipni belgilash realizatsiya qilishga bog‘liq va Allocatorda aniqlanadi.
sonst_iterator - ham iterator ( iterator ) kabidir.


size_type - ishorasiz butun tip, Aniq tipni belgilash realizatsiya qilishga bog‘liq va Allocatorda aniqlanadi.
difference_type - ishorali butun tip, Aniq tipni belgilash realizatsiya qilishga bog‘liq va Allocatorda aniqlanadi.
Elementlarni qo‘shishi insert() funksiyasi tomonidan amalga oshiriladi va bu funksiyaning bir nechta variantlari mavjud:
- juft iteratorlarni kitirishda intervaldan qiymat qo‘shish;
- qo‘yish mumkin bo‘lgan joyga ko‘rsatish orqali bitta qiymat qo‘shish (agar yangi element bevosita oldin pozitsiyani egallasa, o‘rnatish o‘zgarmas vaqt mobaynida amalga oshiriladi);
- berilgan qiymatni qo‘shish (asosiy usul);

Oxirgi variant insert funksiyasi bir juftli (iterator, Boolean) qaytaradi. Juftlikdagi birinchi element qo‘shish joyni yoki topilgan qiymatini, ikkinchi joylashtirilgan qiymatini qo‘shish bajarilganligi (true) yoki qo‘shish vaqtida to‘plamda borligini (flase) bildiradi.

Elementlarni o‘chirish erase funksiyasi orqali amalga oshiriladi. Bu funksiya qiymat yoki berilgan elementlar to‘plami yoki iterator yoki iteratorlar intervallari qabul qiladi.



( 1
)


size_type erase (const value_type& val);




( 2
)


void erase (iterator position);


( 3
)


void erase (iterator first, iterator last);


Birinchi parametr elementni o‘chiradi, qolgan ikka parametrlar elementni ko‘rsatadigan iterator qaytaradi. Birinchi variant o‘chirilgan elementlarning sonini beradi (set bo‘lsa, 1 yoki 0 qiymat beradi).


3.2-dastur. Set to‘plamga elementlarni qo‘shish.

// created by MBBahodir #include "stdafx.h" #include #include using namespace std;


void erase_subs(set &s, const int &subs)

{
set::iterator p, pe, pd; p = s.begin(), pe = s.end();


while (p != pe)
{
if (p == s.find(subs)) p = s.erase(p);
else
++p;
}
}
int main ()
{
set myset; set::iterator it; pair ret;
for (int i=1; i<=5; ++i) myset.insert(i*10); ret = myset.insert(20); if (ret.second == false) it=ret.first;

myset.insert (it,25); myset.insert (it,24); myset.insert (it,26);


int myints[] = {5,10,15,60,28};



myset.insert(myints,myints+5);


cout << "myset contains after insert:";
for (it=myset.begin(); it!=myset.end(); ++it) cout << ' ' << *it; cout << '\n';
// set toʻplam tltmentlarini oʻchirish it = myset.begin();

++it; myset.erase (it); myset.erase (40);


it = myset.find (60); myset.erase (it, myset.end()); cout << "myset contains after erase :";
for (it=myset.begin(); it!=myset.end(); ++it) cout << ' ' << *it; cout << '\n'; erase_subs(myset,24);

cout << "myset contains after erase_subs :"; for (it=myset.begin(); it!=myset.end(); ++it) cout << ' ' << *it; cout << '\n'; system("pause"); return 0;


}

3.2-dastur. Output


myset contains after insert: 5 10 15 20 24 25 26 28 30 40 50 60


myset contains after erase : 5 15 20 24 25 26 28 30 50
myset contains after erase_subs : 5 15 20 25 26 28 30 50



Yüklə 196,69 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə