logo

Funcția de hartă C++

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

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.