logo

karte pret unordered_map programmā C++

Priekšnosacījums: std::map , std::unordered_map
Runājot par efektivitāti, pastāv milzīga atšķirība starp kartēm un nesakārtotām kartēm.
Mums ir jāzina abu iekšējā darbība, lai izlemtu, kuru no tiem izmantot.

Atšķirība:



 | 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) ->Vidēji | | O(n) -> Sliktākā gadījuma ievietošanas laiks | log(n) + līdzsvars | Tas pats, kas meklēšanā Dzēšanas laiks | log(n) + līdzsvars | Tas pats, kas meklēt>

Izmantojiet std::map, kad

  • Nepieciešami pasūtītie dati.
  • Jums būs jādrukā/jāpiekļūst datiem (šķirotā secībā).
  • Jums ir nepieciešams elementu priekštecis/pēctecis.
  • Vairāk gadījumu skatiet BST priekšrocības salīdzinājumā ar Hash Tabl e.

CPP

mainiet direktorija nosaukumu linux








// CPP program to demonstrate use of std::map> #include> int> main()> {> >// Ordered map> >std::map<>int>,>int>>pasūtījums;> >// 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 << ' : ' ' '; } }>

java stīgu klase
>

>

Izvade

strep c
1 : 1 3 : 500 5 : 10 20 : 100>

Izmantojiet std::unordered_map, kad

  • Jums ir jāskaita daži dati (piemērs - virknes), un pasūtīšana nav nepieciešama.
  • Jums ir nepieciešama viena elementa piekļuve, t.i., bez šķērsošanas.

CPP




java programmas paraugi
// CPP program to demonstrate use of> // std::unordered_map> #include> int> main()> {> >// Unordered map> >std::unordered_map<>int>,>int>>pasūtījums;> >// 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 << ' : ' ' '; } }>

>

>

Izvade

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

Apskatīsim atšķirības tabulas veidā -:

karte unordered_map
1. karte ir definēta #include galvenes failā unordered_map ir definēts galvenes failā #include
2. To īsteno sarkanmelns koks . Tas tiek īstenots, izmantojot hash tabulu.
3. Tas ir lēns. Tas ir ātri.
4. Laika sarežģītība operācijām ir O(log N) Operāciju laika sarežģītība ir O(1)
5. karte tiek izmantota, lai saglabātu elementus kā atslēgu, vērtību pārus, kas sakārtoti pēc atslēgas. unordered_map izmanto, lai saglabātu elementus kā atslēgu, vērtību pārus nekārtotā secībā.