map- o clasă de șablon standard a bibliotecii limbajului de programare C++, concepută pentru a implementa abstractizarea afișajului sub forma unui container asociativ ordonat . Declarația sa se află în spațiul de nume al fișierului antet <map> al bibliotecii STL [1] [2] [3] . În contextul accesului la elementele sale, o clasă este considerată o matrice asociativă , în care valorile cheie joacă rolul indicilor [4] , ceea ce face posibilă trasarea unei analogii cu un dicționar sau cu o carte de telefon . 5] . stdmap
Elementele unei clase mapsunt perechi de chei și valorile lor corespunzătoare. Stocarea elementelor de clasă este mapimplementată într-o formă ordonată pe baza unui criteriu de sortare care se aplică prin valori cheie. Implicit, criteriul de sortare este stabilit de operatorul operator< [6] . Spre deosebire de un container set, o clasă mapoferă utilizatorului său operator [][1] . Pentru a controla gestionarea memoriei, este posibil să conectați versiuni personalizate ale alocatoarelor de memorie . Pentru implementarea practică a clasei , mapse folosesc de obicei arbori binari de căutare [7] .
Metodele standard de clasă mappermit utilizatorului să efectueze operații de căutare, inserare și traversare într-un container într-un mod unificat. Pentru mulți dintre ei, este oferită interacțiunea cu iteratorii obișnuiți ai bibliotecii STL [8] .
Datorită structurii ordonate a containerului map, căutarea sau inserarea elementului dorit poate fi efectuată în timp logaritmic [9] .
Nume | Funcții |
---|---|
size() | Returnează numărul de elemente din container |
empty() | Returnează truedacă containerul este gol |
find(k) | Returnează un iterator care indică valoarea corespunzătoare valorii cheii k. Dacă nu există o astfel de valoare în container, atunci este returnat un iterator.end |
operator[k] | Returnează o referință la valoarea corespunzătoare cheii k. Dacă o astfel de cheie nu există, atunci este creată. |
insert(pair(k,v)) | Inserează o pereche în container (k,v), returnând adresa poziției sale |
erase(k) | Îndepărtează elementul cu cheia din containerk |
erase(p) | Îndepărtează din container elementul indicat de iteratorp |
begin() | Returnează un iterator la începutul containerului |
end() | Returnează un iterator la sfârșitul containerului |