Also std::unordered_map suffers from a design flaw that forces a poor implementation.
Honestly, sorted vectors can often be a good replacement, depending on the workload, if you must have ordered data (this is what boost flat_map uses). All 3 (map, unordered_map, sorted vector) can have their uses, depending on what you are doing with the data.
If you need a better performing hash map, there's always Abseil as well.
[0] : https://www.reddit.com/r/programming/comments/5pwgtn/hash_ma...
[1] : https://stackoverflow.com/questions/42588264/why-is-stdunord...