kartta vs unordered_map C++:ssa

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




// 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 < < ' : ' ' '; } }>

Lähtö

1 : 1 3 : 500 5 : 10 20 : 100 

Käytä std::unordered_map when

  • 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 < < ' : ' ' '; } }>

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