Hărțile fac parte din C++ STL (Standard Template Library). Hărțile sunt containerele asociative care stochează pereche cheie-valoare sortată, în care fiecare cheie este unică și poate fi inserată sau ștearsă, dar nu poate fi modificată. Valorile asociate cheilor pot fi modificate.
De exemplu: O hartă a angajaților în care ID-ul angajatului este cheia și numele este valoarea poate fi reprezentată ca:
Chei | Valori |
---|---|
101 | Nikita |
102 | Robin |
103 | Adânc |
104 | Ioan |
Sintaxă
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>
Parametru
cheie: Tipul de date cheie care trebuie stocat pe hartă.
tip: Tipul de date al valorii care trebuie stocat pe hartă.
comparaţie: O clasă de comparație care ia două argumente de același tip bool și returnează o valoare. Acest argument este opțional și predicatul binar less este valoarea implicită.
aloc: Tipul obiectului alocător. Acest argument este opțional și valoarea implicită este alocator.
baza de date a proprietăților acidului
Crearea unei hărți
Hărțile pot fi create cu ușurință folosind următoarea declarație:
typedef pair value_type;
Formularul de mai sus va folosi pentru a crea o hartă cu cheie de tip Tip cheie și valoarea tipului tipul valorii. Un lucru important este că cheia unei hărți și valorile corespunzătoare sunt întotdeauna inserate ca o pereche, nu puteți introduce doar cheia sau doar o valoare într-o hartă.
Exemplul 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; } }
Ieșire:
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
Funcții ale membrilor
Mai jos este lista tuturor funcțiilor membre ale hărții:
Constructor/Distrugător
Funcții | Descriere |
---|---|
constructorii | Construiți harta |
distrugători | Destructor de hărți |
operator= | Copiați elemente ale hărții pe o altă hartă. |
Iteratori
Funcții | Descriere |
---|---|
ÎNCEPE | Returnează un iterator care indică primul element din hartă. |
cbegin | Returnează un iterator const care indică primul element din hartă. |
Sfârşit | Returnează un iterator care indică spre sfârșitul trecut. |
câțiva | Returnează un iterator constant care indică spre sfârșitul trecut. |
a începe | Returnează un iterator invers care indică la sfârșit. |
face | Returnează un iterator invers care indică la început. |
crbegin | Returnează un iterator invers constant care indică la sfârșit. |
crede | Returnează un iterator invers constant care indică la început. |
Capacitate
Funcții | Descriere |
---|---|
gol | Returnează adevărat dacă harta este goală. |
mărimea | Returnează numărul de elemente din hartă. |
dimensiune_max | Returnează dimensiunea maximă a hărții. |
Acces la elemente
Funcții | Descriere |
---|---|
operator[] | Preluați elementul cu cheia dată. |
la | Preluați elementul cu cheia dată. |
Modificatori
Funcții | Descriere |
---|---|
introduce | Inserați elementul în hartă. |
şterge | Ștergeți elementele de pe hartă. |
schimb | Schimbați conținutul hărții. |
clar | Ștergeți toate elementele hărții. |
Locație | Construiți și introduceți elementele noi în hartă. |
emplace_hint | Construiți și inserați elemente noi în hartă prin indiciu. |
Observatori
Funcții | Descriere |
---|---|
key_comp | Returnează o copie a obiectului de comparație cheie. |
valoare_comp | Returnează o copie a obiectului de comparare a valorii. |
Operațiuni
Funcții | Descriere |
---|---|
găsi | Căutați un element cu cheia dată. |
numara | Obține numărul de elemente care se potrivesc cu cheia dată. |
limita inferioară | Returnează un iterator la limita inferioară. |
limită superioară | Returnează un iterator la limita superioară. |
interval_egal | Returnează gama de elemente care se potrivesc cu cheia dată. |
Alocator
Funcții | Descriere |
---|---|
get_allocator | Returnează un obiect alocător care este utilizat pentru a construi harta. |
Funcții supraîncărcate non-membri
Funcții | Descriere |
---|---|
operator== | Verifică dacă cele două hărți sunt egale sau nu. |
operator!= | Verifică dacă cele două hărți sunt egale sau nu. |
operator< | Verifică dacă prima hartă este mai mică decât cealaltă sau nu. |
operator<=< td> | Verifică dacă prima hartă este mai mică sau egală cu cealaltă sau nu. | =<>
operator> | Verifică dacă prima hartă este mai mare decât alta sau nu. |
operator>= | Verifică dacă prima hartă este mai mare decât egală cu cealaltă sau nu. |
swap() | Schimbă elementul a două hărți. |