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