Hărțile sunt recipiente asociative care stochează elemente într-un mod mapat. Fiecare element are o valoare cheie și o valoare mapată. Nu există două valori mapate care pot avea aceleași valori cheie.
std::map este șablonul de clasă pentru containerele de hărți și este definit în interiorul fișierului antet.
Funcții de bază pentru membri std::map
Unele funcții de bază asociate cu std::map sunt:
- ÎNCEPE() – Returnează un iterator la primul element din hartă.
- Sfârşit() – Returnează un iterator la elementul teoretic care urmează ultimul element din hartă.
- mărimea() – Returnează numărul de elemente din hartă.
- max_size() – Returnează numărul maxim de elemente pe care harta le poate conține.
- gol() – Returnează dacă harta este goală.
- inserare pereche (cheie, valoare map) – Adaugă un nou element pe hartă.
- ștergere (poziția iteratorului) – Îndepărtează elementul în poziția indicată de iterator.
- șterge (const g) – Elimină cheia-valoare „g” de pe hartă.
- clar() – Elimină toate elementele de pe hartă.
Exemple de std::map
Următoarele exemple arată cum să efectuați operațiuni de bază pe containerele de hărți.
Exemplul 1: funcția begin() și end().
C++
// C++ program to illustrate the begin and end iterator> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>p.t.; // Inserați câteva valori în hartă mp['one'] = 1; mp['două'] = 2; mp['trei'] = 3; // Obține un iterator care indică primul element din // mapint>::iterator it = mp.begin(); // Repetați harta și imprimați elementele while (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
>Ieșire
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Complexitatea metodei de mai sus:
Complexitatea timpului: O(n) unde n este dimensiunea hărții.
Spațiu auxiliar: Pe)
Exemplul 2: funcția size().
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>Hartă; // Inserați câteva valori în harta hărții['one'] = 1; harta['două'] = 2; harta['trei'] = 3; // Tipăriți dimensiunea hărții<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
>Ieșire
Size of map: 3>
Complexitatea metodei de mai sus:
Complexitatea timpului: O(1).
Exemplul 3: Implementarea hărții
CPP
// CPP Program to demonstrate the implementation in Map> // divyansh mishra -->divyanshmishra101010> #include> #include> #include> using> namespace> std;> int> main()> {> >// empty map container> >map<>int>,>int>>gquiz1;> >// insert elements in random order> >gquiz1.insert(pair<>int>,>int>>(1, 40));> >gquiz1.insert(pair<>int>,>int>>(2, 30));> >gquiz1.insert(pair<>int>,>int>>(3, 60));> >gquiz1.insert(pair<>int>,>int>>(4, 20));> >gquiz1.insert(pair<>int>,>int>>(5, 50));> >gquiz1.insert(pair<>int>,>int>>(6, 50));> >// another way of inserting a value in a map> >gquiz1[7] = 10;> >// printing map gquiz1> >map<>int>,>int>>::iterator itr;> >cout <<>'
The map gquiz1 is :
'>;> >cout <<>' KEY ELEMENT
'>;> >for> (itr = gquiz1.begin(); itr != gquiz1.end(); ++itr) {> >cout <<>' '> ' ' << '
'; } cout << endl; // assigning the elements from gquiz1 to gquiz2 map |
>
>Ieșire
The map gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 The map gquiz2 after assign from gquiz1 is : KEY ELEMENT 1 40 2 30 3 60 4 20 5 50 6 50 7 10 gquiz2 after remov...>
Complexitatea metodei de mai sus:
Complexitatea timpului: O(n log(n)) deoarece n este dimensiunea hărții
Spatiu auxiliar: Pe)
Exemplul 4: Implementarea hărții numerelor întregi
C++
c# conține șir
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>Hartă; // Inserați câteva valori în harta hărții['one'] = 1; harta['două'] = 2; harta['trei'] = 3; // Imprimă valorile în harta cout<< 'Key: one, Value: ' << map['one'] << endl; cout << 'Key: two, Value: ' << map['two'] << endl; cout << 'Key: three, Value: ' << map['three'] << endl; // Check if a key is in the map if (map.count('four')>0) { cout<< 'Key 'four' is in the map' << endl; } else { cout << 'Key 'four' is not in the map' << endl; } return 0; }> |
>
>Ieșire
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Lista tuturor funcțiilor std::map
Următorul tabel conține toate funcțiile definite în clasa std::map.
| Funcţie | Definiție |
|---|---|
| map::insert() | Inserați elemente cu o anumită cheie în containerul hărții –> O(log n) |
| harta:: count() | Returnează numărul de potriviri la elementul cu cheia-valoare „g” din hartă. –> O(log n) |
| harta equal_range() | Returnează un iterator de perechi. Perechea se referă la limitele unui interval care include toate elementele din container care au o cheie echivalentă cu k. |
| ștergerea hărții () | Folosit pentru a șterge elemente din container –> O(log n) |
| map rend() | Returnează un iterator invers care indică elementul teoretic chiar înaintea primei perechi cheie-valoare din hartă (care este considerată finalul său invers). |
| harta rbegin()
| Returnează un iterator invers care indică ultimul element al hărții. |
| găsiți harta() | Returnează un iterator la elementul cu cheia-valoare „g” din hartă dacă este găsit, altfel returnează iteratorul la sfârșit. |
| harta crbegin() și crend() | crbegin() returnează un iterator invers constant care se referă la ultimul element din containerul hărții. crend() returnează un iterator invers constant care indică elementul teoretic înainte de primul element din hartă. |
| harta cbegin() și cend() | cbegin() returnează un iterator constant care se referă la primul element din containerul hărții. cend() returnează un iterator constant care indică elementul teoretic care urmează ultimul element din multimap. |
| harta emplace() | Inserează cheia și elementul acesteia în containerul hărții. |
| harta max_size() | Returnează numărul maxim de elemente pe care un container de hartă poate conține –> O(1) |
| harta upper_bound() | Returnează un iterator la primul element care este echivalent cu valoarea mapată cu valoarea cheie „g” sau cu siguranță va merge după elementul cu valoarea cheie „g” din hartă |
| operator de hartă= | Atribuie conținutul unui container unui alt container, înlocuind conținutul său actual. |
| harta low_bound() | Returnează un iterator la primul element care este echivalent cu valoarea mapată cu valoarea cheie „g” sau cu siguranță nu va merge înaintea elementului cu valoarea cheie „g” din hartă –> O(log n) |
| harta emplace_hint() | Inserează cheia și elementul acesteia în containerul hărții cu un indiciu dat. |
| map value_comp() | Returnează obiectul care determină modul în care sunt ordonate elementele din hartă („<‘ implicit). |
| hartă key_comp() | Returnează obiectul care determină modul în care sunt ordonate elementele din hartă („<‘ implicit). |
| map::size() | Returnează numărul de elemente din hartă. |
| map::empty() | Returnează dacă harta este goală |
| map::begin() și end() | begin() returnează un iterator la primul element din hartă. end() returnează un iterator la elementul teoretic care urmează ultimul element din hartă |
| harta::operator[] | Acest operator este folosit pentru a face referire la elementul prezent la poziția dată în interiorul operatorului. |
| harta::clear() | Elimină toate elementele de pe hartă. |
| map::at() și map::swap() | Funcția at() este folosită pentru a returna referința la elementul asociat cu cheia k. Funcția swap() este utilizată pentru a schimba conținutul a două hărți, dar hărțile trebuie să fie de același tip, deși dimensiunile pot diferi. |