C++ – Hvornår skal man bruge unordered map

C++ fik med C++11 versionen en “std::unordered_map” STL container, men hvornår skal man bruge “std::unordered_map” frem for “std::map”.

Jeg har samlet en lille oversigt for hvornår, man skal hvad.

Brug “std::map” når: 

  • Du ønsker lav memory forbrug

std::unordered_map bruger noget ekstra memory, så hvis der er ønske om at bruge mindst memory skal std:map vælges.

  • Hvis key sorteringen også er vigtigt

Modsat std::unordered_map sorter std::map  alle elementer baseret på key indexet

  • Hvis du ønsker en garanteret lookup tid

std::map giver en mere forudsigelse lookup tid, mens std::unordered_map varierer mere, og for nogle opslag er meget hurtigt, mens andre er langsomere.

Brug “std::unordered_map” når: 

Når man har rigtigt mange elementer, og ikke har nogle memory begrænsninger, men gerne vil have hurtige opslag.

/Flemming Jahn

Leave a Reply

Your email address will not be published. Required fields are marked *