14.map、set是怎么实现的,红黑树是怎么能够同时实现这两种容器? 为什么使用红黑树?
14.map、set是怎么实现的,红黑树是怎么能够同时实现这两种容器? 为什么使用红黑树?
1.他们的底层都是以红黑树的结构实现,因此插入删除等操作都在O(lgn)时间内完成,因此可以完成高效的插入删除;
2.在这里我们定义了一个模版参数,如果它是key那么它就是set,如果它是map,那么它就是map;底层是红黑树,实现map的红黑树的节点数据类型是key+value,而实现set的节点数据类型是value
3.因为map和set要求是自动排序的,红黑树能够实现这一功能,而且时间复杂度比较低。