logo

Kartta C++ Standard Template Libraryssa (STL)

Kartat ovat assosiatiiviset säiliöt jotka tallentavat elementtejä kartoitetulla tavalla. Jokaisella elementillä on avainarvo ja kartoitettu arvo. Kahdella kartoitetulla arvolla ei voi olla samoja avainarvoja.

std::map on karttasäiliöiden luokkamalli ja se määritellään otsikkotiedoston sisällä.



kapselointi javassa

Perus std::map Jäsentoiminnot

Joitakin std::map:n perustoimintoja ovat:

  • alkaa() – Palauttaa iteraattorin kartan ensimmäiseen elementtiin.
  • loppu () – Palauttaa iteraattorin teoreettiseen elementtiin, joka seuraa kartan viimeistä elementtiä.
  • koko() – Palauttaa kartan elementtien määrän.
  • max_size() – Palauttaa enimmäismäärän elementtejä, jotka kartta voi sisältää.
  • tyhjä() – Palauttaa, onko kartta tyhjä.
  • parin lisäys (avainarvo, karttaarvo) – Lisää karttaan uuden elementin.
  • pyyhkiä (iteraattorin paikka) – Poistaa elementin iteraattorin osoittamasta kohdasta.
  • pyyhkiä (jatkuu g) – Poistaa avainarvon 'g' kartalta.
  • asia selvä() – Poistaa kaikki elementit kartalta.

Esimerkkejä std::mapista

Seuraavat esimerkit osoittavat, miten karttasäiliöiden perustoiminnot suoritetaan.

Esimerkki 1: begin() ja end()-funktio

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>sp; // Lisää arvoja karttaan mp['one'] = 1; mp['kaksi'] = 2; mp['kolme'] = 3; // Hanki iteraattori, joka osoittaa // mapin mapint>::iterator it = mp.begin(); // Iteroi kartan läpi ja tulosta elementit while (it != mp.end()) { cout<< 'Key: ' << ', Value: ' ++it; } return 0; }>

>

>

Lähtö

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

Yllä olevan menetelmän monimutkaisuus:

Aika monimutkaisuus: O(n) missä n on kartan koko.

Aputila: Päällä)

Esimerkki 2: size()-funktio

C++




jousenrakentaja
// C++ program to illustrate the size() function> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>kartta; // Lisää joitain arvoja karttakarttaan['one'] = 1; kartta['kaksi'] = 2; kartta['kolme'] = 3; // Tulosta kartan leikkauksen koko<< 'Size of map: ' << map.size() << endl; return 0; }>

>

>

Lähtö

Size of map: 3>

Yllä olevan menetelmän monimutkaisuus:

Aika monimutkaisuus: O(1).

Esimerkki 3: Mapin käyttöönotto

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()); // tulostaa kaikki kartan elementit 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; }>

>

>

Lähtö

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

Yllä olevan menetelmän monimutkaisuus:

Aika monimutkaisuus: O(n log(n)), koska n on kartan koko
Aputila: Päällä)

Esimerkki 4: Kokonaislukukartan toteuttaminen

C++




// C++ program to implement map container> #include> #include> #include> using> namespace> std;> int> main()> {> >// Create a map of strings to integers> >mapint>kartta; // Lisää joitain arvoja karttakarttaan['one'] = 1; kartta['kaksi'] = 2; kartta['kolme'] = 3; // Tulosta arvot map coutissa<< '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; }>

jasmine davis lapsena
>

kassalle gitissä

>

Lähtö

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

Luettelo kaikista std::map-funktioista

Seuraava taulukko sisältää kaikki std::map-luokassa määritellyt funktiot.

Toiminto

Määritelmä

kartta::lisää()

Lisää elementtejä tietyllä avaimella karttasäiliöön -> O(log n)

kartta:: count()

Palauttaa vastaavuuksien määrän elementille, jonka avainarvo on g kartalla. -> O(log n)

kartta equal_range()

Palauttaa parien iteraattorin. Pari viittaa alueen rajoihin, joka sisältää kaikki säilön elementit, joilla on k:ta vastaava avain.

kartan tyhjennys()

Käytetään elementtien poistamiseen säiliöstä –> O(log n)

kartta rend()

Palauttaa käänteisen iteraattorin, joka osoittaa teoreettiseen elementtiin juuri ennen ensimmäistä avainarvoparia kartassa (jota pidetään sen käänteisenä).

kartta rbegin()

Palauttaa käänteisen iteraattorin, joka osoittaa kartan viimeiseen elementtiin.

kartta etsi ()

Palauttaa iteraattorin elementtiin, jonka avainarvo on 'g', jos se löytyy, muussa tapauksessa palauttaa iteraattorin loppuun.

kartta crbegin() ja crend()

crbegin() palauttaa vakion käänteisen iteraattorin, joka viittaa karttasäiliön viimeiseen elementtiin. crend() palauttaa vakion käänteisen iteraattorin, joka osoittaa teoreettiseen elementtiin ennen kartan ensimmäistä elementtiä.

kartta cbegin() ja cend()

cbegin() palauttaa vakioiteraattorin, joka viittaa karttasäiliön ensimmäiseen elementtiin. cend() palauttaa vakioiteraattorin, joka osoittaa teoreettiseen elementtiin, joka seuraa monikartan viimeistä elementtiä.

kartta emplace()

Lisää avaimen ja sen elementin karttasäiliöön.

kartta max_size()

Palauttaa enimmäismäärän elementtejä, jotka karttasäiliö voi sisältää –> O(1)

kartta yläraja()

Palauttaa iteraattorin ensimmäiseen elementtiin, joka vastaa kartoitettua arvoa avainarvolla 'g' tai menee ehdottomasti elementin, jonka avainarvo on 'g' jälkeen kartassa

karttaoperaattori =

Määrittää säilön sisällön eri säilöön ja korvaa sen nykyisen sisällön.

kartta alaraja()

Palauttaa iteraattorin ensimmäiseen elementtiin, joka vastaa kartoitettua arvoa avainarvolla 'g' tai ei varmasti mene ennen elementtiä avainarvolla 'g' kartassa -> O(log n)

kartta emplace_hint()

Lisää avaimen ja sen elementin karttasäiliöön annetulla vihjeellä.

kartta value_comp()

Palauttaa kohteen, joka määrittää, kuinka kartan elementit järjestetään (oletuksena '<').

map key_comp()

Palauttaa kohteen, joka määrittää, kuinka kartan elementit järjestetään (oletuksena '<').

kartta::koko()

Palauttaa kartan elementtien määrän.

kartta::tyhjä()

Palauttaa, onko kartta tyhjä

kartta::begin() and end()

begin() palauttaa iteraattorin kartan ensimmäiseen elementtiin. end() palauttaa iteraattorin teoreettiselle elementille, joka seuraa kartan viimeistä elementtiä

c muotoiltu merkkijono
kartta::operaattori[]

Tätä operaattoria käytetään viittaamaan elementtiin, joka on operaattorin sisällä annetussa paikassa.

kartta::clear()

Poistaa kaikki elementit kartalta.

kartta::at() ja kartta::swap()

at()-funktiota käytetään palauttamaan viittaus avaimeen k liittyvään elementtiin. swap()-funktiota käytetään kahden kartan sisällön vaihtamiseen, mutta karttojen on oltava samaa tyyppiä, vaikka koot voivat vaihdella.