I still use the HashMap even though it's been somewhat obsoleted by std::map<> because std::map<> drives me bonkers that [] adds items to the map.
Anyway, HashMap was giving me some performance issues. My Key was a class that contains 4 Strings
Could:
ValueType operator[] (KeyTypeParameter keyToLookFor) const bool contains (KeyTypeParameter keyToLookFor) const
Be changed to:
ValueType operator[] (const KeyTypeParameter& keyToLookFor) const bool contains (const KeyTypeParameter& keyToLookFor) const
It stops a lot of Strings from being constructed and deconstructed for me.