Any C++ implementation is free to choose their std::map implementation as long as it meets the requirements, it doesn't say anywhere that a RB Tree is required.
Any C++ implementation is free to choose their std::map implementation as long as it meets the requirements, it doesn't say anywhere that a RB Tree is required.
Even if it's not required to be a red-black tree, it is de facto a red-black tree on every major compiler.
Moreover, this doesn't really change the parent's point. It must be some sort of ordered associative container, meaning that it's not going to have the performance characteristics of a hash table.
We don't have always the luxury of choosing which compiler to use.
Relying on implementation details of the compiler or provided library is the first trap to writing portable code across OSes and compiler vendors.
On programming languages with ISO/ANSI specifications, relying on implementation details is a trap for writing portable code.