Förutsättning: std::karta , std::unordered_map
När det kommer till effektivitet är det en enorm skillnad mellan kartor och oordnade kartor.
Vi måste känna till bådas interna arbete för att avgöra vilken som ska användas.
Skillnad:
| 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) ->Medel | | O(n) -> Worst Case Insättningstid | log(n) + Ombalansera | Samma som sökning Raderingstid | log(n) + Ombalansera | Samma som sök>
Använd std::map when
- Du behöver beställd data.
- Du skulle behöva skriva ut/åtkomst till data (i sorterad ordning).
- Du behöver föregångare/efterträdare till element.
- Se fördelarna med BST framför Hash Tabell e för fler fall.
CPP
funktioner i java
// CPP program to demonstrate use of std::map> #include> int> main()> {> >// Ordered map> >std::map<>int>,>int>>beställa;> >// 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 läs csv
>
>
hur man kontrollerar skärmens storlekProduktion
1 : 1 3 : 500 5 : 10 20 : 100>
Använd std::unordered_map när
- Du måste hålla räkningen av vissa data (Exempel – strängar) och ingen beställning krävs.
- Du behöver tillgång till ett enda element, dvs ingen genomgång.
CPP
hur många mission impossible-filmer finns det
// CPP program to demonstrate use of> // std::unordered_map> #include> int> main()> {> >// Unordered map> >std::unordered_map<>int>,>int>>beställa;> >// 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 << ' : ' '
'; } }> |
>
>Produktion
1 : 1 20 : 100 3 : 500 5 : 10>
Låt oss se skillnaderna i tabellform -:
| Karta | unordered_map | |
| 1. | kartan definieras i #include header-filen | unordered_map definieras i #include header-fil |
| 2. | Det genomförs av röd-svart träd . | Det implementeras med hjälp av hashtabell. |
| 3. | Det är långsamt. | Det är snabbt. |
| 4. | Tidskomplexitet för operationer är O(log N) | Tidskomplexiteten för operationer är O(1) |
| 5. | map används för att lagra element som nyckel, värdepar i ordning sorterade efter nyckel. | unordered_map används för att lagra element som nyckel-värdepar i icke-sorterad ordning. |