上一篇博客介绍了红黑树的实现,下面介绍红黑树的应用,在STL中容器set和map,以及multiset和multimap底层实现都是红黑树。
set
set的底层就是用红黑树实现的,set的特性,所有元素都会根据元素的键值自动地排序。set元素的键值就是实值。set不允许两个元素有相同的键值。
迭代器
1、set不能通过迭代器修改set元素值。
因为set元素值就是键值关系到set元素排序规则,迭代器底层被定义为RB-tree的const_iterator。
2、set迭代器进行插入删除操作后,迭代器仍然有效
set构造函数
(1)explicit set ( const Compare& comp = Compare(),
const Allocator& = Allocator() );
(2)template <class InputIterator>
set ( InputIterator first, InputIterator last,