RB_tree

  • 是一种平衡二叉搜索树:① 平衡:为了防止树的某一侧太偏 ② 搜索:通过begin()迭代器不断++,就可以遍历整棵二叉树,相当于中序遍历,自然也可以指定排序规则,这样就按照排序规则遍历整棵树
  • RB_tree提供双向迭代器,但RB_tree本身提供的迭代器并不限制做修改动作,而以rb_tree为底层结构的容器通过某些技巧限制了修改key的动作:
之所以不能修改key,因为rb_tree本身是根据元素的key经过compare来维持严谨的有序状态;

map,multimap:为了防止修改key值,但可以修改value值,因此在声明value_type类型时typedef pair<const Key, T> value_type
set,multiset:为了防止修改key值,在声明iterator时直接typedef typename rep_type::const_iterator itertor
  • rb_tree本身提供了两个插入接口:insert_unique和uni_equal,区别在于是否允许相同元素
set,map的插入动作,转调用rb_tree的insert_unqiue
multiset,multi_map的插入动作,转调用rb_tree的insert_equal
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值