Būtina sąlyga: std::žemėlapis , std::netvarkomas_žemėlapis
Kalbant apie efektyvumą, yra didžiulis skirtumas tarp žemėlapių ir netvarkingų žemėlapių.
Turime žinoti abiejų vidinį veikimą, kad nuspręstume, kurį iš jų naudoti.
Skirtumas:
| 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) ->Vidutinis | | O(n) -> Blogiausias atvejis Įterpimo laikas | log(n) + Perbalansuoti | Tas pats kaip ir paieška Ištrynimo laikas | log(n) + Perbalansuoti | Tas pats kaip paieška>
Naudokite std::map kada
- Jums reikia užsakytų duomenų.
- Turėtumėte atsispausdinti / pasiekti duomenis (rūšiuota tvarka).
- Jums reikia elementų pirmtako / įpėdinio.
- Daugiau atvejų žr. BST pranašumus, palyginti su Hash Tabl e.
CPP
Kaip skaityti csv failą java
// CPP program to demonstrate use of std::map> #include> int> main()> {> >// Ordered map> >std::map<>int>,>int>>užsakymas;> >// 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 << ' : ' '
'; } }> |
rūšiuoti kibirą
>
>
spyruokliniai bataiIšvestis
1 : 1 3 : 500 5 : 10 20 : 100>
Kai naudokite std::unordered_map
- Turite nuolat skaičiuoti kai kuriuos duomenis (pavyzdys – eilutes) ir užsakyti nereikia.
- Jums reikia vieno elemento prieigos, t. y. jokio perėjimo.
CPP
// CPP program to demonstrate use of> // std::unordered_map> #include> int> main()> {> >// Unordered map> >std::unordered_map<>int>,>int>>užsakymas;> >// 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 << ' : ' '
'; } }> |
eilutę į int java
>
>Išvestis
1 : 1 20 : 100 3 : 500 5 : 10>
Pažiūrėkime skirtumus lentelės pavidalu -:
| žemėlapis | netvarkingas_žemėlapis | |
| 1. | žemėlapis yra apibrėžtas #include antraštės faile | unordered_map yra apibrėžtas #include antraštės faile |
| 2. | Jį įgyvendina raudonai juodas medis . | Jis įgyvendinamas naudojant maišos lentelę. |
| 3. | Tai lėta. | Tai greita. |
| 4. | Laiko sudėtingumas operacijoms yra O(log N) | Operacijų laiko sudėtingumas yra O(1) |
| 5. | žemėlapis naudojamas elementams saugoti kaip raktų, reikšmių poras, surūšiuotas pagal raktą. | unordered_map naudojamas elementams saugoti kaip raktų, reikšmių poras nerūšiuota tvarka. |