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<pair"> // map::allocator_type > 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] = '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; } }
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. |