【发布时间】:2020-09-04 02:04:23
【问题描述】:
我知道 set 在 c++ 内部实现为树结构。那么,如何对其执行 lower_bound 呢?我的意思是我理解对于向量,您使用开始和结束索引来选择中间元素并执行二进制搜索,但是对于树状结构,它是如何实现的呢?
【问题讨论】:
标签: c++ tree stl set binary-search
我知道 set 在 c++ 内部实现为树结构。那么,如何对其执行 lower_bound 呢?我的意思是我理解对于向量,您使用开始和结束索引来选择中间元素并执行二进制搜索,但是对于树状结构,它是如何实现的呢?
【问题讨论】:
标签: c++ tree stl set binary-search
在set 中查找lower_bound 与在集合中查找元素几乎相同。在搜索结束时(导航树),您要么找到了元素所在的节点,要么找到了一个大于您正在寻找的元素的元素,但没有任何节点低于子树中的值(因此,如果要添加该值,则在此插入该值,作为该节点的左子节点)。
无论哪种方式,您都找到了元素的下限。
【讨论】: