logo

Karte C++ standarta veidņu bibliotēkā (STL)

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 gquiz2(gquiz1.begin(), gquiz1.end()); // izdrukāt visus kartes elementus gquiz2 cout<< ' The map gquiz2 after' << ' assign from gquiz1 is : '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // remove all elements up to // element with key=3 in gquiz2 cout << ' gquiz2 after removal of' ' elements less than key=3 : '; cout << ' KEY ELEMENT '; gquiz2.erase(gquiz2.begin(), gquiz2.find(3)); for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } // remove all elements with key = 4 int num; num = gquiz2.erase(4); cout << ' gquiz2.erase(4) : '; cout << num << ' removed '; cout << ' KEY ELEMENT '; for (itr = gquiz2.begin(); itr != gquiz2.end(); ++itr) { cout << ' ' ' ' << ' '; } cout << endl; // lower bound and upper bound for map gquiz1 key = 5 cout << 'gquiz1.lower_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; cout << 'gquiz1.upper_bound(5) : ' << ' KEY = '; cout ' '; cout << ' ELEMENT = ' << endl; return 0; }>

>

>

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