Map este un container associativ care are formatul <Key,Value>
de diferite tipuri de date, cu key unic ordonat crescator, inclus in biblioteca map
.
- Structura generală a unui astfel de map este
pre. map<tip_date,tip_date> nume;
exemplu
map<string,int> nume -> pentru de ex a numara cuvinte.
In limbaj comun, se poate folosi ca un vector de frecventa pentru a numara o anumita cheie pe valoarea corespunzatoare.
Pentru a adauga elemente in acest tip de date se va folosi operatorul []
.
ex: m[5]=1;
Pentru a parcurge map-ul nefiind un container secvential, nu se poate accesa cu random access iterator si va fi nevoie de un iterator specific mapului care sa parcurga map-ul in segmentul begin->end.
map<int,int> m; map[1]=2; map[2]=5; map[1]++; map[3]=10; map<int,int>::iterator it; for(it=m.begin();it!=m.end();it++) cout<<it->first<<" "<<it->second<<endl;
Va afisa:
1 3 2 5 3 10
In cazul in care se foloseste aceelasi aspect pentru stringuri:
map<string,int> m; map["apa"]=2; map["mar"]=5; map["ger"]++; map["apa"]=10; map<int,int>::iterator it; for(it=m.begin();it!=m.end();it++) cout<<it->first<<" "<<it->second<<endl;
Va afisa:
apa 10 ger 1 mar 5
Cum este un container STL
exista functii comune adaptate pentru acest container care pot fi vizualizate in STL Vector.
De asemenea am atasat un template facut de mine care implementeaza map, pentru observarea operatilor care sunt facute, dar este recomandata folosirea map din STL deoarece sigur este mai slefuita.