Žemėlapiai yra C++ STL (standartinės šablonų bibliotekos) dalis. Žemėlapiai yra asociatyvūs konteineriai, kuriuose saugoma surūšiuota rakto-reikšmių pora, kurioje kiekvienas raktas yra unikalus ir gali būti įterptas arba ištrintas, bet negali būti pakeistas. Su raktais susietos reikšmės gali būti keičiamos.
Pavyzdžiui: Darbuotojų žemėlapis, kuriame darbuotojo ID yra raktas, o vardas yra reikšmė, gali būti pateiktas kaip:
c
Raktai | Vertybės |
---|---|
101 | Nikita |
102 | Robinas |
103 | Giliai |
104 | Jonas |
Sintaksė
template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator<pair"> // map::allocator_type > class map; </class>
Parametras
Raktas: Pagrindinis duomenų tipas, kuris turi būti saugomas žemėlapyje.
tipas: Vertės duomenų tipas, kuris turi būti saugomas žemėlapyje.
palyginti: Palyginimo klasė, kuri paima du to paties tipo bool argumentus ir grąžina reikšmę. Šis argumentas yra neprivalomas, o dvejetainis predikatas less yra numatytoji reikšmė.
paskirstyti: Skirstytuvo objekto tipas. Šis argumentas yra neprivalomas, o numatytoji reikšmė yra skirstytuvas .
Žemėlapio kūrimas
Žemėlapius galima lengvai sukurti naudojant šį teiginį:
typedef pair value_type;
Aukščiau pateikta forma bus naudojama žemėlapiui su tipo raktu sukurti Rakto tipas ir tipo vertę vertės tipas. Svarbu tai, kad žemėlapio raktas ir atitinkamos reikšmės visada įterpiamos kaip pora, į žemėlapį negalima įterpti tik rakto ar tik reikšmės.
1 pavyzdys
#include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = 'Nikita'; Employees[105] = 'John'; Employees[103] = 'Dolly'; Employees[104] = 'Deep'; Employees[102] = 'Aman'; cout << 'Employees[104]=' << Employees[104] << endl << endl; cout << 'Map size: ' << Employees.size() << endl; cout << endl << 'Natural Order:' << endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } cout << endl << 'Reverse Order:' << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } }
Išvestis:
Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
Narių funkcijos
Žemiau pateikiamas visų žemėlapio narių funkcijų sąrašas:
išsaugoti youtube video vlc
Statytojas/griovėjas
Funkcijos | apibūdinimas |
---|---|
konstruktoriai | Sukurti žemėlapį |
naikintojai | Žemėlapio naikintojas |
operatorius = | Nukopijuokite žemėlapio elementus į kitą žemėlapį. |
Iteratoriai
Funkcijos | apibūdinimas |
---|---|
pradėti | Grąžina iteratorių, nukreipiantį į pirmąjį elementą žemėlapyje. |
cbegin | Grąžina const iteratorių, nukreipiantį į pirmąjį elementą žemėlapyje. |
galas | Grąžina iteratorių, nurodantį į praeitį. |
keletas | Grąžina pastovų iteratorių, nurodantį į praeitį. |
rbegin | Grąžina atvirkštinį iteratorių, nukreipiantį į pabaigą. |
gamina | Grąžina atvirkštinį iteratorių, nurodantį į pradžią. |
crbegin | Grąžina nuolatinį atvirkštinį iteratorių, nurodantį į pabaigą. |
tikėti | Grąžina nuolatinį atvirkštinį iteratorių, nurodantį į pradžią. |
Talpa
Funkcijos | apibūdinimas |
---|---|
tuščia | Grąžina tiesa, jei žemėlapis tuščias. |
dydis | Grąžina elementų skaičių žemėlapyje. |
maksimalus_dydis | Grąžina maksimalų žemėlapio dydį. |
Elemento prieiga
Funkcijos | apibūdinimas |
---|---|
operatorius[] | Gauti elementą duotu raktu. |
adresu | Gauti elementą duotu raktu. |
Modifikatoriai
Funkcijos | apibūdinimas |
---|---|
Įdėti | Įterpti elementą į žemėlapį. |
ištrinti | Ištrinkite elementus iš žemėlapio. |
apsikeisti | Keiskitės žemėlapio turiniu. |
aišku | Ištrinkite visus žemėlapio elementus. |
vieta | Sukurkite ir įterpkite naujus elementus į žemėlapį. |
emplace_hint | Sukurkite ir įterpkite naujų elementų į žemėlapį pagal užuominą. |
Stebėtojai
Funkcijos | apibūdinimas |
---|---|
key_comp | Grąžinkite raktų palyginimo objekto kopiją. |
vertės_komp | Grąžinkite verčių palyginimo objekto kopiją. |
Operacijos
Funkcijos | apibūdinimas |
---|---|
rasti | Ieškokite elemento naudodami nurodytą raktą. |
skaičiuoti | Gauna elementų, atitinkančių nurodytą raktą, skaičių. |
apatinė riba | Grąžina iteratorių į apatinę ribą. |
viršutinė_riba | Grąžina iteratorių į viršutinę ribą. |
lygus_diapazonas | Grąžina elementų diapazoną, atitinkantį nurodytą raktą. |
Alokatorius
Funkcijos | apibūdinimas |
---|---|
get_allocator | Grąžina skirstytuvo objektą, kuris naudojamas žemėlapiui sudaryti. |
Ne narių perkrautos funkcijos
Funkcijos | apibūdinimas |
---|---|
operatorius== | Patikrina, ar abu žemėlapiai yra vienodi, ar ne. |
operatorius!= | Patikrina, ar abu žemėlapiai yra vienodi, ar ne. |
operatorius< | Patikrina, ar pirmasis žemėlapis yra mažesnis nei kitas, ar ne. |
operatorius<=< td> | Patikrina, ar pirmasis žemėlapis yra mažesnis arba lygus kitam, ar ne. | =<>
operatorius> | Patikrina, ar pirmasis žemėlapis yra didesnis už kitą, ar ne. |
operatorius>= | Patikrina, ar pirmasis žemėlapis yra didesnis nei lygus kitam, ar ne. |
apsikeisti () | Keičiasi dviejų žemėlapių elementu. |