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. |