Kartes ir asociatīvie konteineri kas glabā elementus kartētā veidā. Katram elementam ir atslēgas vērtība un kartēta vērtība. Divām kartētām vērtībām nevar būt vienādas galvenās vērtības.
std::map ir klases veidne karšu konteineriem, un tā ir definēta galvenes failā.
Pamata std::map dalībnieka funkcijas
Dažas ar std::map saistītās pamatfunkcijas ir:
- sākt () – Atgriež iteratoru uz pirmo kartes elementu.
- beigas () – Atgriež iteratoru uz teorētisko elementu, kas seko pēdējam elementam kartē.
- Izmērs() – Atgriež elementu skaitu kartē.
- max_size() – Atgriež maksimālo elementu skaitu, ko karte var saturēt.
- tukšs () – Atgriež, ja karte ir tukša.
- pāra ievietošana (atslēgas vērtība, kartes vērtība) – pievieno kartei jaunu elementu.
- dzēst (iteratora pozīcija) – Noņem elementu iteratora norādītajā pozīcijā.
- dzēst (konst. g) – No kartes noņem atslēgas vērtību “g”.
- skaidrs () – No kartes noņem visus elementus.
std::map piemēri
Šajos piemēros ir parādīts, kā veikt pamata darbības kartes konteineros.
1. piemērs: funkcija begin() un end()
C++
numpy standartnovirze
// 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>mp; // Ievietot kartē dažas vērtības mp['one'] = 1; mp['divi'] = 2; mp['trīs'] = 3; // Iegūstiet iteratoru, kas norāda uz pirmo elementu kartē mapint>::iterator it = mp.begin(); // Atkārtojiet karti un izdrukājiet elementus, kamēr (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }> |
>
>Izvade
Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n) kur n ir kartes izmērs.
Palīgtelpa: O(n)
2. piemērs: size() funkcija
C++
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>karte; // Ievietot dažas vērtības kartes kartē['one'] = 1; karte ['divi'] = 2; karte['trīs'] = 3; // Drukājiet kartes izgriezuma izmēru<< 'Size of map: ' << map.size() << endl; return 0; }> |
>
>Izvade
Size of map: 3>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(1).
3. piemērs: Kartes ieviešana
CPP
java šķirošanas virknes
// 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 |
>
>Izvade
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...>
Iepriekš minētās metodes sarežģītība:
Laika sarežģītība: O(n log(n)), jo n ir kartes izmērs
Palīgtelpa: O(n)virknes java masīvs
4. piemērs: Veselo skaitļu kartes ieviešana
C++
// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>karte; // Ievietot dažas vērtības kartes kartē['one'] = 1; karte ['divi'] = 2; karte['trīs'] = 3; // Drukājiet vērtības kartes griezumā<< '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; }> |
>
osi modeļa slāņi
>Izvade
Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>
Visu std::map funkciju saraksts
Šajā tabulā ir visas std::map klasē definētās funkcijas.
| Funkcija | Definīcija |
|---|---|
| karte::ievietot() | Ievietot kartes konteinerā elementus ar noteiktu atslēgu –> O(log n) |
| karte:: count() | Atgriež atbilstības skaitu elementam ar atslēgas vērtību “g” kartē. –> O(log n) |
| karte vienāds_diapazons() | Atgriež pāru iteratoru. Pāris attiecas uz diapazona robežām, kas ietver visus konteinera elementus, kuru atslēga ir ekvivalenta k. |
| kartes dzēšana () | Izmanto, lai dzēstu elementus no konteinera –> O(log n) |
| map rend() | Atgriež apgriezto iteratoru, kas norāda uz teorētisko elementu tieši pirms pirmā atslēgas vērtību pāra kartē (kas tiek uzskatīts par tā apgriezto galu). |
| karte rbegin()
| Atgriež apgriezto iteratoru, kas norāda uz pēdējo kartes elementu. |
| kartē atrast() | Atgriež iteratoru elementam ar atslēgas vērtību “g”, ja tas tiek atrasts, pretējā gadījumā atgriež iteratoru līdz beigām. |
| karte crbegin() un crend() | crbegin() atgriež pastāvīgu reverso iteratoru, atsaucoties uz pēdējo elementu kartes konteinerā. crend() atgriež nemainīgu apgriezto iteratoru, kas norāda uz teorētisko elementu pirms pirmā elementa kartē. |
| karte cbegin() un cend() | cbegin() atgriež konstantu iteratoru, kas attiecas uz pirmo elementu kartes konteinerā. cend() atgriež konstantu iteratoru, kas norāda uz teorētisko elementu, kas seko pēdējam elementam multikartē. |
| karte emplace() | Ievieto atslēgu un tās elementu kartes konteinerā. |
| kartes max_size() | Atgriež maksimālo elementu skaitu, ko var ievietot kartes konteinerā —> O(1) |
| karte augšējā_ robeža() | Atgriež iteratoru uz pirmo elementu, kas ir līdzvērtīgs kartētajai vērtībai ar atslēgas vērtību “g” vai noteikti aizies kartē aiz elementa ar atslēgas vērtību “g” |
| kartes operators= | Piešķir konteinera saturu citam konteineram, aizstājot tā pašreizējo saturu. |
| kartes apakšējā_ robeža() | Atgriež iteratoru pirmajam elementam, kas ir līdzvērtīgs kartētajai vērtībai ar atslēgas vērtību “g” vai noteikti netiks kartē pirms elementa ar atslēgas vērtību “g” —> O(log n) |
| karte emplace_hint() | Ievieto atslēgu un tās elementu kartes konteinerā ar dotu mājienu. |
| map value_comp() | Atgriež objektu, kas nosaka, kā tiek sakārtoti elementi kartē (pēc noklusējuma ‘<’). |
| map key_comp() | Atgriež objektu, kas nosaka, kā tiek sakārtoti elementi kartē (pēc noklusējuma ‘<’). |
| karte::izmērs() | Atgriež elementu skaitu kartē. |
| karte::tukšs() | Atgriež, ja karte ir tukša |
| karte::begin() un end() | begin() atgriež iteratoru pirmajam elementam kartē. end() atgriež iteratoru teorētiskajam elementam, kas seko pēdējam elementam kartē |
| karte::operators[] | Šis operators tiek izmantots, lai atsauktos uz elementu, kas atrodas operatora iekšpusē norādītajā pozīcijā. |
| karte::clear() | No kartes noņem visus elementus. |
| karte::at() un karte::swap() | funkcija at() tiek izmantota, lai atgrieztu atsauci uz elementu, kas saistīts ar atslēgu k. Funkciju swap() izmanto, lai apmainītos ar divu karšu saturu, taču kartēm ir jābūt viena veida, lai gan izmēri var atšķirties. maven krātuve |