logo

Funkcija preslikave C++

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&lt;pair"> // map::allocator_type &gt; 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] = &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; } } 

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.