logo

Mapová funkcia C++

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&lt;pair"> // map::allocator_type &gt; 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] = &apos;Nikita&apos;; Employees[105] = &apos;John&apos;; Employees[103] = &apos;Dolly&apos;; Employees[104] = &apos;Deep&apos;; Employees[102] = &apos;Aman&apos;; cout &lt;&lt; &apos;Employees[104]=&apos; &lt;&lt; Employees[104] &lt;&lt; endl &lt;&lt; endl; cout &lt;&lt; &apos;Map size: &apos; &lt;&lt; Employees.size() &lt;&lt; endl; cout &lt;&lt; endl &lt;&lt; &apos;Natural Order:&apos; &lt;&lt; endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; endl; } cout &lt;&lt; endl &lt;&lt; &apos;Reverse Order:&apos; &lt;&lt; endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout &lt;&lt; (*ii).first &lt;&lt; &apos;: &apos; &lt;&lt; (*ii).second &lt;&lt; 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.