Set uchun aniqlangan turlar:
№
|
Nomi
|
Izoh
|
1
|
allocator_type
|
To'plam obyekti uchun ajratuvchi sinfini ifodalovchi tur.
|
2
|
const_iterator
|
To'plamning const elementini o'qiy oladigan ikki tomonli iteratorni ta'minlaydigan tur.
|
3
|
const_pointer
|
To'plamdagi const elementiga ko'rsatgichni ta'minlaydigan tur.
|
4
|
const_reference
|
Const operatsiyalarini o'qish va bajarish uchun to'plamda saqlanadigan const elementiga mos yozuvlar beradigan tur.
|
5
|
const_reverse _iterator
|
To'plamdagi istalgan konst elementni o'qiy oladigan ikki tomonlama iteratorni ta'minlovchi tur.
|
6
|
difference_type
|
Iteratorlar tomonidan ko'rsatilgan elementlar orasidagi diapazonda to'plamdagi elementlar sonining vakili sifatida foydalanish uchun mos bo'lgan imzolangan butun son turi.
|
7
|
iterator
|
To'plamdagi istalgan elementni o'qishi yoki o'zgartirishi mumkin bo'lgan ikki tomonli iteratorni ta'minlovchi tur.
|
8
|
key_compare
|
To'plamdagi ikkita elementning nisbiy tartibini aniqlash uchun ikkita xil elementlarni taqqoslashi mumkin bo'lgan funktsiya obyekti bilan ta'minlaydigan tur.
|
9
|
key_type
|
Saralash kalitiga xos bo'lgan qobiliyatlari jihatidan to'plam sifatida saqlangan obyektni tavsiflovchi tur.
|
10
|
pointer
|
Bir to'plamdagi elementga ko'rsatgichni ta'minlaydigan tur.
|
11
|
reference
|
To'plamda saqlanadigan elementga mos yozuvlar beradigan tur.
|
12
|
reverse_iterator
|
Inverted to'plamda elementni o'qiy oladigan yoki o'zgartiradigan ikki tomonlama iteratorni ta'minlaydigan tur.
|
13
|
size_type
|
To'plamdagi elementlar sonini ifodalashi mumkin bo'lgan imzolanmagan butun son turi.
|
14
|
value_compare
|
To'plamdagi ularning nisbiy tartibini aniqlash uchun ikkita elementni taqqoslashi mumkin bo'lgan funktsiya obyekti bilan ta'minlaydigan tur.
|
15
|
value_type
|
To'plam elementi sifatida saqlanadigan ob'ektni qiymatga xos bo'lgan qobiliyatlari nuqtai nazaridan tavsiflaydigan tur.
|
Set uchun aniqlangan funksiyalar:
№
|
Nomi
|
Izoh
|
|
begin
|
To'plamdagi birinchi elementga kiradigan iteratorni qaytaradi.
|
|
cbegin
|
To'plamdagi birinchi elementga tegishli bo'lgan konst-iteratorni qaytaradi.
|
|
cend
|
To'plamdagi oxirgi elementdan keyingi joyga ishora qiluvchi const iteratorini qaytaradi.
|
|
clear
|
Bir to'plamdagi barcha elementlarni o'chiradi.
|
|
count
|
Kalitlari parametr tomonidan berilgan kalitga mos keladigan to'plamdagi elementlar sonini qaytaradi.
|
|
crbegin
|
Invertirlangan to'plamdagi birinchi elementga kiradigan konst-iteratorni qaytaradi.
|
|
crend
|
Inverted to'plamdagi oxirgi elementdan keyin joylashgan joyni bildiradigan konst-iteratorni qaytaradi.
|
|
emplace
|
To'plamga element joylashtiradi.
|
|
emplace_hint
|
Joylashtirishga ishora bilan to'plamga element kiritadi.
|
|
empty
|
To'plam bo'sh yoki yo'qligini tekshiradi.
|
|
end
|
To'plamdagi oxirgi elementdan keyingi joyga ishora qiluvchi iteratorni qaytaradi.
|
|
equal_range
|
Belgilangan kalitdan kattaroq kalit bilan to'plamdagi birinchi elementga va berilgan kalitdan kattaroq yoki unga teng keladigan to'plamdagi birinchi elementga mos ravishda iterator juftligini qaytaradi.
|
|
erase
|
Belgilangan pozitsiyalardan biron bir element yoki elementlar qatorini o’chiradi yoki berilgan kalitga mos keladigan elementlarni o’chiradi.
|
|
find
|
Belgilangan kalitga teng keladigan kalit bilan to'plamdagi elementning joylashuviga kiradigan iteratorni qaytaradi.
|
|
get_allocator
|
To'plamni yaratish uchun foydalaniladigan ajratuvchi ob'ektining nusxasini qaytaradi.
|
|
insert
|
To’plamga elementlar yoki elementlar qatorini qo'shadi.
|
|
key_comp
|
To'plamda elementlarni tartibga solish uchun ishlatiladigan taqqoslash obyektining nusxasini oladi.
|
|
lower_bound
|
Belgilangan kalitdan kattaroq yoki unga teng bo'lgan kalit bilan to'plamdagi birinchi elementga ishora qiluvchi iteratorni qaytaradi.
|
|
max_size
|
To'plamning maksimal uzunligini qaytaradi.
|
|
rbegin
|
Inverter to'plamdagi birinchi elementga kiradigan iteratorni qaytaradi.
|
|
rend
|
Invertirlangan to'plamdagi oxirgi elementdan keyingi joyga ishora qiluvchi iteratorni qaytaradi.
|
|
size
|
To'plamdagi elementlar sonini qaytaradi.
|
|
swap
|
Ikki to'plam elementlarni almashtiradi.
|
|
upper_bound
|
Belgilangan kalitdan kattaroq kalit bilan to'plamdagi birinchi elementga ishora qiluvchi iteratorni qaytaradi.
|
|
value_comp
|
To'plamdagi elementlarning qiymatlarini tartibga solish uchun ishlatiladigan taqqoslash obyektining nusxasini oladi.
|
begin() funksiyasi:
Qaytish qiymati "boshlash" const_iterator-ga tayinlangan bo'lsa, u holda belgilangan obyektdagi elementlarni o'zgartirish mumkin emas. Agar boshlang'ichning qaytarilish qiymati iteratorga tayinlangan bo'lsa, unda yig'ish obyektidagi elementlar o'zgarishi mumkin.
cbegin() funksiyasi:
To'plamdagi birinchi elementga tegishli bo'lgan const-iterator ni qaytaradi.
const_iterator cbegin() const;
auto i1 = Container.begin(); // i1 is Container::iterator
auto i2 = Container.cbegin(); // i2 is Container::const_iterator
cend() funksiyasi:
Maydondagi oxirgi elementdan so'ng darhol manzilga kiradigan doimiy iteratorni qaytaradi.
const_iterator cend() const;
auto i1 = Container.end();
// i1 is Container::iterator
auto i2 = Container.cend();
// i2 is Container::const_iterator
clear() funksiyasi:
const_reference() funksiyasi:
Const operatsiyalarini o'qish va bajarish uchun to'plamda saqlanadigan const elementiga mos yozuvlar beradigan tur.
typedef typename allocator_type::const_reference const_reference;
count() funksiyasi:
crbegin() funksiyasi:
emplace() funksiyasi:
emplace_hint() funksiyasi:
Yaratilgan elementni joyiga qo'yish (nusxalash yoki ko'chirish ishlari amalga oshirilmaydi).
template
iterator emplace_hint(
const_iterator where,
Args&&... args);
find() funksiyasi:
Belgilangan pozitsiyalardan biron bir element yoki elementlar qatorini yoki berilgan kalitga mos keladigan elementlarni topadi.
iterator find(const Key& key);
const_iterator find(
const Key& key) const;
allocator_type turi:
To'plam obyekti uchun tarqatish sinfini ifodalovchi tur.
typedef Allocator allocator_type;
key_comp() funksiyasi:
To'plamdagi elementlarni tartibga solish uchun ishlatiladigan taqqoslash obyektining nusxasini oladi.
bool-operator () (key const & _xVal, key const & _yVal);
Esda tutingki, key_compare va value_compare ikkalasi ham Traits shablonlari parametrining sinonimidir. Ikkala turi ham bir xil bo'lgan to'siq va multiset sinflari uchun taqdim etiladi, ular map da va multimap sinflarida mosligi uchun farq qiladi.
multiset sinfi
multiset - bir xil kalitlar bilan ishlovchi turlar va funksiyalarga ega konteynerdir. set sinfida mavjud barcha barcha funksiyalar multimap sinfi uchun ham qo’llaniladi. Faqat mavjud elementlarga murojaat qilishda funksiya sintaksisi o’zgarishi mumkin.
set va multiset sinflaridan foydalanib, amaliy dasturlar yaratish
Masalaning qo’yilishi:
set va multiset asosida yaratilgan to’plam elementlarini set va mutiset ning maxsus funksiyalari yordamida qayta ishlash.
Masala:
Berilgan int turidagi to’plam qiymatlari 2- to’plamda nechta marta qatnashganligini aniqlovchi va ularni ekranga chiqaruvchi dastur tuzing. Ikkala to’plamdan ham bir xil qiymatli elemetlar o’chirilib, saralangan to’plam hosil qilinsin hamda uning qiymatlari ekranga chiqarilsin.
Masalani yechish g‘oyasi:
set konteyneri to’plami yaratiladi. list ning insert() iteratoridan foydalanib, A to’plamga qiymatlar o’zlashtiriladi. Z to’plamga esa A to’plam qiymatlarini juftlari yoziladi.
set va multiset sinflaridan foydalanib, amaliy dasturlar yaratish
Ishning maqsadi: C++ dasturlash tilida set va multiset sinflari va uning metodlaridan foydalanish ko’nikmalarini egallsh.
Masalaning qo’yilishi:
set va multiset asosida yaratilgan to’plam elementlarini set va mutiset ning maxsus funksiyalari yordamida qayta ishlash.
Masala:
Berilgan int turidagi to’plam qiymatlari 2- to’plamda nechta marta qatnashganligini aniqlovchi va ularni ekranga chiqaruvchi dastur tuzing. Ikkala to’plamdan ham bir xil qiymatli elemetlar o’chirilib Saralangan to’plam hosil qilinsin hamda uning qiymatlari ekranga chiqarilsin.
Masalani yechish g‘oyasi: set konteyneri to’plami yaratiladi. list ning insert() iteratoridan foydalanib, A to’plamga qiymatlar o’zlashtiriladi. Z to’plamga esa A to’plam qiymatlarini juftlari yoziladi.
Dastur matni:
#include "stdafx.h"
#include
#include
#include
#include
using namespace System;
using namespace std;
int main()
{ srand(time(NULL));
set s; int n;
cout<<"Elementlar sonini: "; cin>>n;
multiset M, M2;
for (int i = 0; i < n; i++)
{ int j = rand()%n+n; M.insert(j);
j = rand()%n+n; M2.insert(j);
}
auto k2 = M.begin();
set s2;
for (int i = 0; i < n; i++)
{
s2.insert(*k2); k2++;
}
cout<
for (auto i=M.begin(); i!=M.end(); i++)
{
cout<<*i<<" ";
}
cout<
cout<
for (auto i=M2.begin(); i!=M2.end(); i++)
{
cout<<*i<<" ";
}
cout<
int soni=0;
for (auto i=s2.begin(); i!=s2.end(); i++)
{
for (auto j=M2.begin(); j!=M2.end(); j++)
{
if(M2.count(*i)){
if(*i==*j) {soni++; }
}
}
if(soni>0)cout<<*i<<" -"<
else {cout<<*i<<" - qatnashmagan "<
soni = 0;
}
//cout<
auto k = M.begin();
auto l = M2.begin();
for (int i = 0; i < n; i++)
{
s.insert(*k);k++;
s.insert(*l); l++;
}
cout<
cout<
for (auto i=s.begin(); i!=s.end(); i++)
{
cout<<*i<<" ";
}
getchar(); getchar();
return 0;
}
Dastur natijasi:
Elementlar sonini: 25
M to'plam elementlari:
25 27 27 27 27 28 29 30 31 31 31 32 33 33 35 35 37 37 40 42 42 43 43 47 48
M2 to'plam elementlari:
26 27 30 31 31 31 31 34 35 37 38 39 42 43 45 45 45 46 46 46 46 47 47 49 49
M1 ning elementlari M2 to'plamda qatnashganlari soni:
25 - qatnashmagan
27 -1 marta
28 - qatnashmagan
29 - qatnashmagan
30 -1 marta
31 -4 marta
32 - qatnashmagan
33 - qatnashmagan
35 -1 marta
37 -1 marta
40 - qatnashmagan
42 -1 marta
43 -1 marta
47 -2 marta
48 - qatnashmagan
Saralangan to'plam elementlari:
25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 42 43 45 46 47 48 49
|
map sinfi
map va multimap - konteyner sinf shablonlarini va ularning yordamchi shablonlarini belgilaydi.
<map> kutubxonasi, shuningdek #include direktivasidan foydalanadi.
map va multimap uchun quyidagi operatorlar qayta yuklangan:
map sinfi uchun qayta yuklanga operatorlar
map sinfi:
Har bir element ma'lumotlar qiymati va saralash kalitiga ega bo'lgan to'plamdan ma'lumotlarni saqlash va olish uchun ishlatiladi. Kalit qiymati noyobdir va ma'lumotlarni avtomatik saralash uchun ishlatiladi.
map da elementning qiymati to'g'ridan-to'g'ri o'zgartirilishi mumkin. Kalit qiymati doimiy bo'lib, uni o'zgartirib bo'lmaydi. Buning o'rniga eski elementlar bilan bog'liq bo'lgan kalit qiymatlarni o’chirish va yangi elementlarga yangi kalit qiymatlarini kiritish kerak.
map sinfining sintaksisi:
template
class Type,
class Traits = less,
class Allocator=allocator
>> class map;
map sinfining turlari va funksiyalari
map sinfining turlari va funksiyalari set sinfiniki bilan bir xil faqat ulardan foydalanish usullarida farq qilinishi mumkin.
value_type turi va at(), insert() funksiyalari:
const_iterator turi va erase () funksiysi:
typedef pair turi va begin() funksiysi:
typedef pair turi va count() funksiysi:
difference_type turi:
Iteratorlar tomonidan ko'rsatilgan elementlar orasidagi diapazonda map ning elementlar sonini ifodalash uchun ishlatilishi mumkin bo'lgan imzolangan butun son.
farq_type - bu konteyner iteratorlari yordamida kamaytirish yoki ko'paytirish orqali qaytariladigan tur. differ_type odatda birinchi va oxirgi iteratorlar orasidagi [firs, last] oralig'idagi elementlar sonini ifodalash uchun ishlatiladi.
map va multimap sinflaridan foydalanib, amaliy dasturlar yaratish
Ishning maqsadi: C++ dasturlash tilida map va mulmap sinflari va uning metodlaridan foydalanish ko’nikmalarini egallsh.
Masalaning qo’yilishi:
map va multimap asosida yaratilgan to’plam elementlarini map va mutimap ning maxsus funksiyalari yordamida qayta ishlash.
Masala:
Talabalarning haqida (familiya, ismi va stipendiyasi) string va float turidagi to’plam berilgan. Familiyasi yoki ismi to’liq yozilganlar va stipendiyasi N ga teng bo’lganlaridan 2- to’plamni hosil qiluvchi va ularni ekranga chiqaruvchi dastur tuzing.
Masalani yechish g‘oyasi:
map konteyneri to’plami yaratiladi. map ning insert(pair('a',10)) iteratoridan foydalanib, A to’plamga qiymatlar o’zlashtiriladi.
Dastur matni:
#include "stdafx.h"
#include
#include
#include
using namespace System;
using namespace std;
int main()
{ map s; int n;
cout<<"Talabalar sonini kiriting: "; cin>>n; cin.ignore();
multimap M, M2;
for (int i = 0; i < n; i++)
{ string St;
int step;
cout<
cout<<"Fam, ismi: "; getline(cin,St);
cout<<"Stipendiyasi: "; cin>>step; cin.ignore();
s.insert(pair(St,step));
M.insert(pair(St,step));
}
string S;
int N;
cout<<"Qanday stipendiya oladigan talaba haqida ma'lumot kerak?: ";
cin>>N;
int k=0;
for (auto it = M.begin(); it != M.end(); ++it){
S = it->first;
if(S.find(" ")second == N){
M2.insert(pair(S,N)); cout<<"bor"<
}
cout<<"So'rov Natijasi:"<
for (auto it = M2.begin(); it != M2.end(); ++it){
cout<first<<" "<second<
}
getchar(); getchar();
return 0;}
Dastur natijasi:
Talabalar sonini kiriting: 3
1 - talaba ma'lumotlarini kiriting:
Fam, ismi: Mallayev Oybek
Stipendiyasi: 400000
2 - talaba ma'lumotlarini kiriting:
Fam, ismi: Ishniyazov Odil
Stipendiyasi: 500000
3 - talaba ma'lumotlarini kiriting:
Fam, ismi: ABdurahmonov
Stipendiyasi: 300000
Qanday stipendiya oladigan talaba haqida ma'lumot kerak?: 400000
bor
So'rov Natijasi:
Mallayev Oybek 400000
|
4. Tartiblanmagan assotsiativ konteynerlar
Tartibga solinmagan assotsiativ konteynerlar tezda qidirish qobiliyatiga ega (buzilgan) ma'lumotlar tuzilmalarini (o'rtacha murakkabligi O (1), eng yomon holatda O (n)) tashkil etadi.
unordered_set (C++11) - Noyob kalitlar, xash-kalitlar to'plami.
unordered_map(C++11) - Kalit-qiymat juftlari to'plami, to'ldirilgan kalitlar, kalitlar noyobdir.
unordered_multiset(C++11) - Kalitlar to'plami, hash-kalitlar.
unordered_multimap(C++11) -
unordered_set sinfi:
template< class Key, class Hash = std::hash,
class KeyEqual = std::equal_to,
class Allocator = std::allocator> class unordered_set;
Tartiblanmagan to'plam bu ko'p turdagi noyob obyektlarni o'z ichiga olgan assotsiativ konteynerdir. Qidiruv, qo'shish va o'chirish o'rtacha doimiy vaqt murakkabligiga ega.
unordered_set iteratorlari:
Nomi
|
Izoh
|
begin, cbegin
|
Birinchi elementga iteratorni qaytaradi.
|
end, cend
|
Iteratorni oxirgi elementga qaytaradi.
|
empty
|
Konteynerni bo’shlikka tekshirish.
|
size
|
Konteynerning elementlar sonini qaytaradi.
|
max_size
|
Konteynerning ruxsat etilgan elementlarning maksimal sonini qaytaradi.
|
unordered_set ning funksiya – a’zolari:
Nomi
|
Izoh
|
at
|
Ko'rsatilgan elementga indeks tekshiruvi bilan kirishni ta'minlaydi
|
operator[]
|
Belgilangan elementga kirishni ta'minlaydi
|
front
|
Birinchi elementga kirishni ta'minlaydi
|
back
|
oxirgi elementga kirishni ta'minlaydi
|
data (C++11)
|
Massivning birinchi haqiqiy elementiga ko'rsatgichni qaytaradi
|
unordered_set ning funksiya – a’zolari
Nomi
|
Izoh
|
get_allocator
|
Bog'langan ajratuvchini qaytaradi.
|
operator=
|
Konteynerdagi qiymatlarni o'rnatadi
|
unordered_set ning modifikatorlari:
Nomi
|
Izoh
|
clear
|
Konteynerni tozalaydi.
|
insert
|
Konteynerga element qo’shadi.
|
emplace
|
Elementlarni "joyida" quradi va berilgan pozitsiyadan boshlab ularni joylashtiradi.
|
emplace_hint
|
Foydalanish joyidagi struktura elementlari.
|
erase
|
Konteynerdan element ochirish.
|
swap
|
Tarkibni almashtirish.
|
count
|
Muayyan kalitga mos keladigan elementlar sonini qaytaradi.
|
find
|
Ma'lum bir kalitga ega bo'lgan elementni topadi.
|
equal_range
|
Ma'lum bir kalit uchun elementlar to'plamini qaytaradi.
|
bucket_count
|
Buketlar sonini qaytaradi.
|
max_bucket_count
|
Buketlar sonini maksimalini qaytaradi.
|
bucket_size
|
Aniq buketdagi elementlar soni.
|
bucket
|
Aniq kalitlar uchun buket qaytarish.
|
Hash Table bilan ishlovchi funksiyalar:
Nomi
|
Izoh
|
load_factor
|
Bir buketdagi elementlarning o'rtacha sonini qaytaradi.
|
max_load_factor
|
O’rtach elementlar sonini maksimal boshqarish.
|
rehash
|
Talab qilinganidan kam bo'lmagan holda hesh jadvalini qayta tiklash.
|
reserve
|
Kamida belgilangan sonlar uchun joy saqlaydi.
Bu hash jadvalini tiklaydi.
|
hash_function
|
Element qiymatlarini xesh qilish uchun ishlatiladigan funktsiya.
|
key_eq
|
Kalitlarning tengligini tekshirish funktsiyasini qaytaradi.
|
unordered_set uchun qayta yuklanmagan operatorlar:
Nomi
|
Izoh
|
operator==
|
Bir qatordagi qiymatlarni leksikografik jihatdan taqqoslaydi
|
operator!=
|
unordered_set ga misol:
unordered_set::swap ga misol:
unordered_set konstruktoriga misol:
std::unordered_set::begin:
std::unordered_set::bucket:
std::unordered_set::bucket_count:
std::unordered_set::bucket_size:
std::unordered_set::cbegin:
std::unordered_set::clear:
std::unordered_set::count:
std::unordered_set::empty:
std::unordered_set::erase:
std::unordered_set::find:
std::unordered_set::hash_function:
std::unordered_set::insert:
insert funksiyasini 6 ta turi mavjud. Ular quyidagicha:
1) pair insert ( const value_type& val );
2) pair insert ( value_type&& val );
3) iterator insert ( const_iterator hint, const value_type& val );
4) iterator insert ( const_iterator hint, value_type&& val );
5) template
void insert ( InputIterator first, InputIterator last );
6) void insert ( initializer_list il );
key_type() – funksiyasi
load_factor() – funksiyasi:
Maqsadi - blokdagi elementlarning o'rtacha sonini hisoblaydi.
float load_factor() const;
A'zo funktsiyasi (float) unordered_set::size() / (float) unordered_set::bucket_count(), har bir blok uchun elementlarning o'rtacha sonini qaytaradi.
= operatori:
Maqsadi – hesh jadvalni nushalash.
unordered_set& operator=(const unordered_set& right); unordered_set& operator=(unordered_set&& right);
unordered_set-dagi mavjud elementlarni yo'q qilgandan so'ng ,, operator = nusxa oladi yoki tarkibni to'g'ridan-to'g'ri unordered_set-ga o'tkazadi.
typedef Alloc::pointer pointer;:
Maqsadi – boshqariladigan ketma-ketlikning elementiga ko'rsatgich sifatida ishlatilishi mumkin bo'lgan obyekt bilan ishlash.
IsReference() – funksiyasi:
Maqsadi – Turi boshqariladigan ketma-ketlikning elementi uchun havola sifatida ishlatilishi mumkin bo'lgan obyekt bilan ishlash.
typedef Alloc::reference reference;
rehash() – funksiyasi:
Maqsadi – Hash jadvalini qayta yaratish.
void rehash(size_type nbuckets);
Ushbu funktsiya, hech bo'lmaganda nbuket bo'lishi uchun konteynerlar sonini o'zgartiradi va kerak bo'lganda hash jadvalini tiklaydi.
unordered_set() – konstruktorlar:
Birinchi konstruktor to'g'ri chizilgan ketma-ketlikning nusxasini belgilaydi.
Ikkinchi konstruktor boshqariladigan bo'sh ketma-ketlikni belgilaydi.
Uchinchi konstruktor sakkizinchi konstruktorlar o'rtasida to'rtinchi o'ng tomon siljish bilan ketma-ketlikning nusxasini bildiradi. Nusxalash uchun elementlarni belgilash uchun initializer_list-dan foydalaning.
To'qqizinchi konstruktor element qiymatlarining ketma-ketligini qo'shadi [birinchi, oxirgi).
Barcha konstruktorlar bir qator saqlanadigan qiymatlarni ishga tushiradilar. Nusxa tuzuvchi uchun qiymatlar o'ng tomonda olinadi. Aks holda:
Konteynerlarning minimal soni - bu argument, bucket_count, agar mavjud bo'lsa; aks holda, bu N0 amalga oshirish bilan belgilangan qiymat sifatida tasvirlangan standart qiymat.
hash funktsiyasi obyekti, agar mavjud bo'lsa, hash argumentidir; aks holda bu Hash ().
Foydalanilgan adabiyotlar:
https://ru.cppreference.com/w/cpp/container/unordered_set
https://ru.cppreference.com/w/cpp/container/unordered_set/operator%3D
https://docs.microsoft.com/ru-ru/cpp/standard-library/unordered-set-functions?view=vs-2019
http://www.cplusplus.com/reference/unordered_set/unordered_set/unordered_set/
http://www.cplusplus.com/reference/unordered_set/unordered_set/begin/
http://www.cplusplus.com/reference/unordered_set/unordered_set/bucket/
http://www.cplusplus.com/reference/unordered_set/unordered_set/bucket_count/
http://www.cplusplus.com/reference/unordered_set/unordered_set/bucket_size/
https://docs.microsoft.com/ru-ru/cpp/standard-library/unordered-set-class?view=vs-2017#rehash
https://docs.microsoft.com/ru-ru/cpp/standard-library/map-class?view=vs-2017
Xulosa
Assotsiativ konteynerlar:
set – faqat kalitlarni saqlaydi.
map – kalit va qiymatlarni saqlaydi.
Tartibga solinmagan assotsiativ konteynerlar:
unordered set – faqat kalitlarni saqlaydi.
unordered map – kalit va qiymatlarni saqlaydi.
Ushbu konteynerlarning kalitlari noyob – ya’niy takrorlanmaydi. Lekin kalitlari takrorlanadigan konteynerlar ham bor. Ular quyidagicha:
multiset, multimap, unordered multiset, unordered multimap.
Do'stlaringiz bilan baham: |