为什么std::map被实现为红黑树?目前有几种平衡二叉搜索树(BSTs)。选择红黑树的设计权衡是什么?

有人能举例说明二叉树和二叉搜索树的区别吗?