Mapy sú súčasťou C++ STL (Standard Template Library). Mapy sú asociatívne kontajnery, ktoré ukladajú triedený pár kľúč – hodnota, v ktorom je každý kľúč jedinečný a možno ho vložiť alebo odstrániť, ale nemožno ho zmeniť. Hodnoty spojené s kľúčmi je možné zmeniť.
Napríklad: Mapa zamestnancov, kde je ID zamestnanca kľúčom a meno je hodnota, môže byť reprezentovaná ako:
Keys | hodnoty |
---|---|
101 | Nikita |
102 | Robin |
103 | Hlboký |
104 | John |
Syntax
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
kľúč: Kľúčový typ údajov, ktorý sa má uložiť do mapy.
typ: Dátový typ hodnoty, ktorá sa má uložiť do mapy.
porovnaj: Porovnávacia trieda, ktorá berie dva argumenty rovnakého typu bool a vracia hodnotu. Tento argument je voliteľný a binárny predikát less je predvolená hodnota.
alloc: Typ objektu alokátora. Tento argument je voliteľný a predvolená hodnota je alokátor .
vytvorenie oracle tabuľky
Vytvorenie mapy
Mapy je možné jednoducho vytvoriť pomocou nasledujúceho príkazu:
typedef pair value_type;
Vyššie uvedený formulár sa použije na vytvorenie mapy s kľúčom typu Typ kľúča a hodnotu typu typ hodnoty. Dôležitá vec je, že kľúč mapy a zodpovedajúce hodnoty sa vždy vkladajú ako pár, do mapy nemôžete vložiť iba kľúč alebo len hodnotu.
Príklad 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; } }
Výkon:
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
funkcie členov
Nižšie je uvedený zoznam všetkých členských funkcií mapy:
Staviteľ/ničiteľ
Funkcie | Popis |
---|---|
konštruktérov | Zostavte mapu |
ničiteľov | Deštruktor máp |
operátor= | Skopírujte prvky mapy na inú mapu. |
Iterátory
Funkcie | Popis |
---|---|
začať | Vráti iterátor ukazujúci na prvý prvok na mape. |
cbegin | Vráti konštantný iterátor ukazujúci na prvý prvok na mape. |
koniec | Vráti iterátor ukazujúci na minulý koniec. |
zopár | Vráti konštantný iterátor ukazujúci na minulý koniec. |
začať | Vráti spätný iterátor ukazujúci na koniec. |
robí | Vráti spätný iterátor ukazujúci na začiatok. |
crbegin | Vráti konštantný reverzný iterátor ukazujúci na koniec. |
veriť | Vráti konštantný reverzný iterátor ukazujúci na začiatok. |
Kapacita
Funkcie | Popis |
---|---|
prázdny | Ak je mapa prázdna, vráti hodnotu true. |
veľkosť | Vráti počet prvkov na mape. |
max_size | Vráti maximálnu veľkosť mapy. |
Prístup k prvku
Funkcie | Popis |
---|---|
operátor[] | Získajte prvok s daným kľúčom. |
pri | Získajte prvok s daným kľúčom. |
Modifikátory
Funkcie | Popis |
---|---|
vložiť | Vložte prvok do mapy. |
vymazať | Vymazať prvky z mapy. |
vymeniť | Vymeňte obsah mapy. |
jasný | Odstráňte všetky prvky mapy. |
umiestnenie | Zostavte a vložte nové prvky do mapy. |
emplace_hint | Zostavte a vložte nové prvky do mapy pomocou nápovedy. |
Pozorovatelia
Funkcie | Popis |
---|---|
key_comp | Vráti kópiu objektu porovnania kľúča. |
value_comp | Vráti kópiu objektu porovnania hodnôt. |
Operácie
Funkcie | Popis |
---|---|
Nájsť | Vyhľadajte prvok s daným kľúčom. |
počítať | Získa počet prvkov zodpovedajúcich danému kľúču. |
nižšia hranica | Vráti iterátor na spodnú hranicu. |
Horná hranica | Vráti iterátor na hornú hranicu. |
rovnaký_rozsah | Vráti rozsah prvkov, ktoré sa zhodujú s daným kľúčom. |
Prideľovač
Funkcie | Popis |
---|---|
get_allocator | Vráti objekt alokátora, ktorý sa používa na zostavenie mapy. |
Nečlenské preťažené funkcie
Funkcie | Popis |
---|---|
operátor== | Skontroluje, či sú tieto dve mapy rovnaké alebo nie. |
operátor!= | Skontroluje, či sú tieto dve mapy rovnaké alebo nie. |
operátor< | Skontroluje, či je prvá mapa menšia ako druhá alebo nie. |
operátor<=< td> | Skontroluje, či je prvá mapa menšia alebo rovná inej alebo nie. | =<>
operátor> | Skontroluje, či je prvá mapa väčšia ako iná alebo nie. |
operátor>= | Skontroluje, či je prvá mapa väčšia ako rovná inej alebo nie. |
vymeniť () | Vymieňa prvok dvoch máp. |