Zemljevidi so del C++ STL (Standardna knjižnica predlog). Zemljevidi so asociativni vsebniki, ki shranjujejo razvrščene pare ključ-vrednost, v katerih je vsak ključ edinstven in ga je mogoče vstaviti ali izbrisati, vendar ga ni mogoče spremeniti. Vrednosti, povezane s ključi, je mogoče spremeniti.
Na primer: Zemljevid zaposlenih, kjer je ID zaposlenega ključ in ime vrednost, je mogoče predstaviti kot:
Ključi | Vrednote |
---|---|
101 | Nikita |
102 | taščica |
103 | Globoko |
104 | Janez |
Sintaksa
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>
Parameter
ključ: Ključni podatkovni tip, ki bo shranjen na zemljevidu.
vrsta: Podatkovni tip vrednosti, ki bo shranjen na zemljevidu.
primerjaj: Primerjalni razred, ki sprejme dva argumenta istega tipa bool in vrne vrednost. Ta argument ni obvezen in binarni predikat manj je privzeta vrednost.
dodeli: Vrsta predmeta dodeljevalnika. Ta argument ni obvezen in privzeta vrednost je razdelilnik.
Java ne
Ustvarjanje zemljevida
Zemljevide lahko preprosto ustvarite z uporabo naslednje izjave:
typedef pair value_type;
Zgornji obrazec bo uporabljen za ustvarjanje zemljevida s ključem vrste Vrsta ključa in vrednost tipa vrsta vrednosti. Ena pomembna stvar je, da so ključ zemljevida in ustrezne vrednosti vedno vstavljeni kot par, v zemljevid ne morete vstaviti samo ključa ali samo vrednosti.
Primer 1
#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; } }
Izhod:
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
Članske funkcije
Spodaj je seznam vseh članskih funkcij zemljevida:
Graditelj/Uničevalec
Funkcije | Opis |
---|---|
konstruktorji | Sestavi zemljevid |
rušilci | Destruktor zemljevidov |
operater= | Kopirajte elemente zemljevida na drug zemljevid. |
Iteratorji
Funkcije | Opis |
---|---|
začeti | Vrne iterator, ki kaže na prvi element na zemljevidu. |
cbegin | Vrne const iterator, ki kaže na prvi element v preslikavi. |
konec | Vrne iterator, ki kaže na pretekli konec. |
nekaj | Vrne stalni iterator, ki kaže na pretekli konec. |
rbegin | Vrne povratni iterator, ki kaže na konec. |
naredi | Vrne povratni iterator, ki kaže na začetek. |
crbegin | Vrne stalni povratni iterator, ki kaže na konec. |
verjeti | Vrne stalni povratni iterator, ki kaže na začetek. |
Zmogljivost
Funkcije | Opis |
---|---|
prazno | Vrne true, če je zemljevid prazen. |
velikost | Vrne število elementov na zemljevidu. |
max_size | Vrne največjo velikost zemljevida. |
Dostop do elementov
Funkcije | Opis |
---|---|
operater [] | Pridobite element z danim ključem. |
pri | Pridobite element z danim ključem. |
Modifikatorji
Funkcije | Opis |
---|---|
vstavi | Vstavite element v zemljevid. |
izbrisati | Izbrišite elemente z zemljevida. |
zamenjava | Izmenjajte vsebino zemljevida. |
jasno | Izbrišite vse elemente zemljevida. |
lokacijo | Konstruirajte in vstavite nove elemente v zemljevid. |
emplace_hint | Z namigom sestavite in v zemljevid vstavite nove elemente. |
Opazovalci
Funkcije | Opis |
---|---|
key_comp | Vrni kopijo predmeta primerjave ključev. |
vrednost_komp | Vrne kopijo predmeta primerjave vrednosti. |
Operacije
Funkcije | Opis |
---|---|
najti | Poiščite element z danim ključem. |
štetje | Pridobi število elementov, ki se ujemajo z danim ključem. |
spodnja_meja | Vrne iterator na spodnjo mejo. |
Zgornja meja | Vrne iterator na zgornjo mejo. |
enak_razpon | Vrne obseg elementov, ki se ujemajo z danim ključem. |
Razdeljevalec
Funkcije | Opis |
---|---|
get_allocator | Vrne objekt alokatorja, ki se uporablja za izdelavo zemljevida. |
Preobremenjene funkcije, ki niso člani
Funkcije | Opis |
---|---|
operater== | Preveri, ali sta zemljevida enaka ali ne. |
operater!= | Preveri, ali sta zemljevida enaka ali ne. |
operater< | Preveri, ali je prvi zemljevid manjši od drugih ali ne. |
operater<=< td> | Preveri, ali je prvi zemljevid manjši ali enak drugim ali ne. | =<>
operater> | Preveri, ali je prvi zemljevid večji od drugih ali ne. |
operater>= | Preveri, ali je prvi zemljevid večji kot enak drugim ali ne. |
zamenjaj() | Izmenja element dveh zemljevidov. |