Lug'atlar (Maps)
C++ Lug'at
Lug'at elementlarni "kalit/qiymat" juftliklarida saqlaydi.
Lug'atdagi elementlar:
- Kalitlar bo'yicha kirish mumkin (indeks bo'yicha emas) va har bir kalit noyob
- Avtomatik ravishda kalitlari bo'yicha o'sish tartibida saralanadi
Lug'atdan foydalanish uchun <map> sarlavha faylini import qiling:
MISOL
cpp
#include <map>Lug'at yaratish
map<kalitTuri, qiymatTuri> lugatNomi shaklida yaratiladi:
MISOL
cpp
map<string, int> people = { {"John", 32}, {"Adele", 45}, {"Bo", 29} };Lug'at elementiga kirish
Kvadrat qavslar [] ichidagi kalitga murojaat qilinadi:
MISOL
cpp
map<string, int> people = { {"John", 32}, {"Adele", 45}, {"Bo", 29} };
cout << "John is: " << people["John"] << "\n";.at() funksiyasi orqali ham kirish mumkin (element mavjud bo'lmasa xato beradi):
MISOL
cpp
cout << "Bo is: " << people.at("Bo") << "\n";Qiymatlarni o'zgartirish
MISOL
cpp
people["John"] = 50;
cout << "John is: " << people["John"]; // John is: 50Element qo'shish
MISOL
cpp
people["Jenny"] = 22;
// yoki
people.insert({"Liam", 24});ESLATMA
Teng kalitli elementlar bo'lishi mumkin emas. Qiymatlar teng bo'lishi mumkin, lekin kalitlar noyob bo'lishi kerak.
Element olib tashlash
MISOL
cpp
people.erase("John"); // muayyan element
people.clear(); // barcha elementlarLug'at hajmi va bo'shligini tekshirish
MISOL
cpp
cout << people.size(); // elementlar soni
cout << people.empty(); // bo'sh bo'lsa 1, bo'lmasa 0
cout << people.count("John"); // 1 (mavjud) yoki 0 (mavjud emas)Lug'at bo'ylab tsikl
auto kalit so'zi bilan .first (kalit) va .second (qiymat) ishlatiladi:
MISOL
cpp
map<string, int> people = { {"John", 32}, {"Adele", 45}, {"Bo", 29} };
for (auto person : people) {
cout << person.first << " is: " << person.second << "\n";
}Natija:
Adele is: 45
Bo is: 29
John is: 32Teskari tartib uchun greater<tur> funktoridan foydalaning:
MISOL
cpp
map<string, int, greater<string>> people = { {"John", 32}, {"Adele", 45}, {"Bo", 29} };
for (auto person : people) {
cout << person.first << " is: " << person.second << "\n";
}