Insight 32.9.1.
The height of a Red-Black tree is \(O(\log{N})\text{,}\) guaranteeing logarithmic time complexity for search, insertion, and deletion operations.
B->R->B->R->B->R. The shortest path would look like B->B->B. This means that the longest path is no more than twice the length of the shortest path.
std::map and std::set containers do not mandate a particular tree type, but do require guaranteed logarithmic time complexity for insertions, deletions, and lookups. To optimize for mixed use, implementation typically use Red-Black trees. (You may be able to see this by using the debugger to inspect the internal structure of these containers.)