logo

C++ map funkcija

Karte su dio C++ STL (Standard Template Library). Mape su asocijativni spremnici koji pohranjuju sortirane parove ključ-vrijednost, u kojima je svaki ključ jedinstven i može se umetnuti ili izbrisati, ali se ne može mijenjati. Vrijednosti povezane s ključevima mogu se mijenjati.

Na primjer: Karta zaposlenika gdje je ID zaposlenika ključ, a ime vrijednost može se predstaviti kao:

Ključevi Vrijednosti
101 Nikita
102 Robin
103 Duboko
104 Ivan

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>

Parametar

ključ: Tip ključnog podatka koji se pohranjuje na karti.

tip: Vrsta podataka vrijednosti koja će se pohraniti u kartu.

usporediti: Klasa za usporedbu koja uzima dva argumenta istog tipa bool i vraća vrijednost. Ovaj argument nije obavezan i binarni predikat manje je zadana vrijednost.

dodijeliti: Vrsta objekta alokatora. Ovaj argument nije obavezan, a zadana vrijednost je alokator.

algoritam sortiranja gomile

Izrada karte

Karte se lako mogu izraditi pomoću sljedeće izjave:

 typedef pair value_type; 

Gornji obrazac koristit će se za izradu karte s ključem vrste Vrsta ključa i vrijednost tipa vrsta vrijednosti. Jedna važna stvar je da se ključ karte i odgovarajuće vrijednosti uvijek umeću kao par, ne možete u mapu umetnuti samo ključ ili samo vrijednost.

Primjer 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; } } 

Izlaz:

 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

Ispod je popis svih funkcija članica karte:

Graditelj/razarač

Funkcije Opis
konstruktori Konstruirajte kartu
razarači Destruktor karte
operator= Kopirajte elemente karte na drugu kartu.

Iteratori

Funkcije Opis
početi Vraća iterator koji pokazuje na prvi element u mapi.
cpočeti Vraća const iterator koji pokazuje na prvi element u mapi.
kraj Vraća iterator koji pokazuje na prošli kraj.
nekoliko Vraća konstantni iterator koji pokazuje na prošli kraj.
rbegin Vraća obrnuti iterator koji pokazuje na kraj.
pravi Vraća obrnuti iterator koji pokazuje na početak.
crbegin Vraća stalni obrnuti iterator koji pokazuje na kraj.
vjerovati Vraća stalni obrnuti iterator koji pokazuje na početak.

Kapacitet

Funkcije Opis
prazan Vraća true ako je karta prazna.
veličina Vraća broj elemenata u mapi.
najveća_veličina Vraća maksimalnu veličinu karte.

Pristup elementu

Funkcije Opis
operater[] Dohvatite element s danim ključem.
na Dohvatite element s danim ključem.

Modifikatori

Funkcije Opis
umetnuti Umetanje elementa u kartu.
izbrisati Brisanje elemenata s karte.
zamijeniti Razmijenite sadržaj karte.
čisto Izbrišite sve elemente karte.
mjesto Konstruirajte i umetnite nove elemente u kartu.
emplace_hint Konstruirajte i umetnite nove elemente u kartu pomoću nagovještaja.

Promatrači

Funkcije Opis
ključ_komp Vrati kopiju objekta usporedbe ključeva.
vrijednost_komp Vrati kopiju objekta usporedbe vrijednosti.

Operacije

Funkcije Opis
pronaći Potražite element s danim ključem.
računati Dobiva broj elemenata koji se podudaraju s danim ključem.
Donja granica Vraća iterator na donju granicu.
Gornja granica Vraća iterator na gornju granicu.
jednak_raspon Vraća raspon elemenata koji se podudaraju s danim ključem.

Alokator

Funkcije Opis
get_allocator Vraća objekt alokatora koji se koristi za izradu karte.

Preopterećene funkcije koje nisu članice

Funkcije Opis
operator== Provjerava jesu li dvije karte jednake ili ne.
operator!= Provjerava jesu li dvije karte jednake ili ne.
operator< Provjerava je li prva karta manja od druge ili ne.
operater<=< td> Provjerava je li prva karta manja ili jednaka drugoj ili nije.
operator> Provjerava je li prva karta veća od druge ili ne.
operator>= Provjerava je li prva karta veća od jednake drugoj ili ne.
zamijeniti () Mijenja element dvaju mapa.