Edellytys: std::kartta , std::järjestämätön_kartta
Mitä tulee tehokkuuteen, karttojen ja järjestämättömien karttojen välillä on valtava ero.
Meidän on tunnettava molempien sisäinen toiminta päättääksemme kumpaa käytetään.
Ero:
| map | unordered_map --------------------------------------------------------- Ordering | increasing order | no ordering | of keys(by default) | Implementation | Self balancing BST | Hash Table | like Red-Black Tree | search time | log(n) | O(1) ->Keskimääräinen | | O(n) -> Huonoin tapauksen lisäysaika | log(n) + Tasapainottaminen | Sama kuin haussa Poistoaika | log(n) + Tasapainottaminen | Sama kuin haussa>
Käytä std::map milloin
- Tarvitset tilattuja tietoja.
- Sinun pitäisi tulostaa / käyttää tietoja (lajiteltuna).
- Tarvitset elementtien edeltäjän/seuraajan.
- Katso lisää tapauksia BST:n eduista Hash Tabl e:hen verrattuna.
CPP
Androidin kehittäjätilan sammuttaminen
// CPP program to demonstrate use of std::map> #include> int> main()> {> >// Ordered map> >std::map<>int>,>int>>tilata;> >// Mapping values to keys> >order[5] = 10;> >order[3] = 500;> >order[20] = 100;> >order[1] = 1;> >// Iterating the map and> >// printing ordered values> >for> (>auto> i = order.begin(); i> >!= order.end(); i++) {> >std::cout << ' : ' '
'; } }> |
>
merkkijonojen joukko c
>Lähtö
1 : 1 3 : 500 5 : 10 20 : 100>
Käytä std::unordered_map when
java merkkijonomuoto pitkä
- Joitakin tietoja on laskettava (esimerkki - merkkijonot), eikä tilausta tarvita.
- Tarvitset yhden elementin pääsyn eli ei läpikulkua.
CPP
// CPP program to demonstrate use of> // std::unordered_map> #include> int> main()> {> >// Unordered map> >std::unordered_map<>int>,>int>>tilata;> >// Mapping values to keys> >order[5] = 10;> >order[3] = 500;> >order[20] = 100;> >order[1] = 1;> >// Iterating the map and> >// printing unordered values> >for> (>auto> i = order.begin();> >i != order.end(); i++)> >{> >std::cout << ' : ' '
'; } }> |
Vaihda menetelmä java
>
>Lähtö
1 : 1 20 : 100 3 : 500 5 : 10>
Katsotaanpa erot taulukkomuodossa -:
| kartta | unordered_map | |
| 1. | kartta määritellään #include otsikkotiedostossa | unordered_map on määritetty #include otsikkotiedostossa |
| 2. | Sen toteuttaa puna-musta puu . | Se toteutetaan hash-taulukon avulla. |
| 3. | Se on hidasta. | Se on nopea. |
| 4. | Aika monimutkaisuus operaatioille on O(log N) | Toiminnan aika monimutkaisuus on O(1) |
| 5. | karttaa käytetään elementtien tallentamiseen avain-arvopareina avaimen mukaan lajiteltuina. | unordered_map:a käytetään elementtien tallentamiseen avain-arvopareina lajittelemattomassa järjestyksessä. |