logo

Kart i C++ Standard Template Library (STL)

Kart er assosiative beholdere som lagrer elementer på en kartlagt måte. Hvert element har en nøkkelverdi og en kartlagt verdi. Ingen to tilordnede verdier kan ha de samme nøkkelverdiene.

std::map er klassemalen for kartcontainere og den er definert inne i overskriftsfilen.



Grunnleggende std::map Medlemsfunksjoner

Noen grunnleggende funksjoner knyttet til std::map er:

  • begynne() – Returnerer en iterator til det første elementet i kartet.
  • slutt() – Returnerer en iterator til det teoretiske elementet som følger det siste elementet i kartet.
  • størrelse() – Returnerer antall elementer i kartet.
  • max_size() – Returnerer maksimalt antall elementer som kartet kan inneholde.
  • tømme() – Returnerer om kartet er tomt.
  • par insert (nøkkelverdi, kartverdi) – Legger til et nytt element på kartet.
  • slett (iteratorposisjon) – Fjerner elementet i posisjonen pekt av iteratoren.
  • slette(konst g) – Fjerner nøkkelverdien 'g' fra kartet.
  • klar() – Fjerner alle elementene fra kartet.

Eksempler på std::map

Følgende eksempler viser hvordan du utfører grunnleggende operasjoner på kartcontainere.

Eksempel 1: start() og end() funksjon

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>mp; // Sett inn noen verdier i kartet mp['one'] = 1; mp['to'] = 2; mp['tre'] = 3; // Få en iterator som peker på det første elementet i // mapmapint>::iterator it = mp.begin(); // Iterer gjennom kartet og skriv ut elementene mens (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }>

>

10 av 50

>

Produksjon

Key: one, Value: 1 Key: three, Value: 3 Key: two, Value: 2>

Kompleksiteten til metoden ovenfor:

Tidskompleksitet: O(n) hvor n er størrelsen på kartet.

Hjelpeplass: På)

Eksempel 2: size() funksjon

C++




// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>kart; // Sett inn noen verdier i kartkartet['one'] = 1; kart['to'] = 2; kart['tre'] = 3; // Skriv ut størrelsen på kartutsnittet<< 'Size of map: ' << map.size() << endl; return 0; }>

>

>

Produksjon

Size of map: 3>

Kompleksiteten til metoden ovenfor:

Tidskompleksitet: O(1).

Eksempel 3: Implementeringskart

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 gquiz2(gquiz1.begin(), gquiz1.end()); // skriv ut alle elementene i kartet 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; }>

>

>

Produksjon

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...>

Kompleksiteten til metoden ovenfor:

Tidskompleksitet: O(n log(n)) som n er størrelsen på kartet
Ekstra plass: På)

Eksempel 4: Implementering av kart over heltall

C++




// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>kart; // Sett inn noen verdier i kartkartet['one'] = 1; kart['to'] = 2; kart['tre'] = 3; // Skriv ut verdiene i kartutsnittet<< '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; }>

>

>

Produksjon

Key: one, Value: 1 Key: two, Value: 2 Key: three, Value: 3 Key 'four' is not in the map>

Liste over alle funksjoner til std::map

Følgende tabell inneholder alle funksjonene som er definert i std::map-klassen.

Funksjon

Definisjon

map::insert()

Sett inn elementer med en bestemt nøkkel i kartbeholderen –> O(log n)

kart:: telle()

Returnerer antall treff til element med nøkkelverdi «g» i kartet. –> O(log n)

kart like_område()

Returnerer en iterator av par. Paret refererer til grensene for et område som inkluderer alle elementene i beholderen som har en nøkkel som tilsvarer k.

kart slett()

Brukes til å slette elementer fra beholderen –> O(log n)

kart rend()

Returnerer en omvendt iterator som peker på det teoretiske elementet rett før det første nøkkelverdi-paret i kartet (som regnes som dets motsatte ende).

Hvordan laste ned YouTube-videoer vlc
kart rbegin()

Returnerer en omvendt iterator som peker til det siste elementet i kartet.

kartfinn()

Returnerer en iterator til elementet med nøkkelverdi 'g' i kartet hvis den finnes, ellers returnerer iteratoren til slutt.

kart crbegin() og crend()

crbegin() returnerer en konstant omvendt iterator som refererer til det siste elementet i kartbeholderen. crend() returnerer en konstant omvendt iterator som peker til det teoretiske elementet før det første elementet i kartet.

kart cbegin() og cend()

cbegin() returnerer en konstant iterator som refererer til det første elementet i kartbeholderen. cend() returnerer en konstant iterator som peker til det teoretiske elementet som følger det siste elementet i multikartet.

kart emplace()

Setter inn nøkkelen og dens element i kartbeholderen.

kart max_size()

Returnerer det maksimale antallet elementer en kartbeholder kan inneholde –> O(1)

kart øvre_grense()

Returnerer en iterator til det første elementet som tilsvarer tilordnet verdi med nøkkelverdi 'g' eller definitivt vil gå etter elementet med nøkkelverdi 'g' i kartet

kartoperatør=

Tildeler innholdet i en beholder til en annen beholder, og erstatter dens nåværende innhold.

kart nedre_grense()

Returnerer en iterator til det første elementet som tilsvarer den tilordnede verdien med nøkkelverdi 'g' eller som definitivt ikke vil gå før elementet med nøkkelverdi 'g' i kartet -> O(log n)

kart emplace_hint()

Setter inn nøkkelen og dens element i kartbeholderen med et gitt hint.

kart verdi_komp()

Returnerer objektet som bestemmer hvordan elementene i kartet er sortert («<» som standard).

map key_comp()

Returnerer objektet som bestemmer hvordan elementene i kartet er sortert («<» som standard).

kart::størrelse()

Returnerer antall elementer i kartet.

map::empty()

Returnerer om kartet er tomt

map::begin() og end()

begin() returnerer en iterator til det første elementet i kartet. end() returnerer en iterator til det teoretiske elementet som følger det siste elementet i kartet

map::operatør[]

Denne operatøren brukes til å referere til elementet som er tilstede på posisjonen gitt inne i operatøren.

map::clear()

Fjerner alle elementene fra kartet.

map::at() og map::swap()

at()-funksjonen brukes til å returnere referansen til elementet knyttet til nøkkelen k. swap()-funksjonen brukes til å utveksle innholdet i to kart, men kartene må være av samme type, selv om størrelsene kan variere.