问题描述
我知道set是在c ++内部实现为树结构的。那么,lower_bound如何执行呢?我的意思是我了解向量,您可以使用开始和结束索引选择中间元素并执行二进制搜索,但是如何为树状结构实现它呢?
解决方法
在lower_bound
中查找set
与在集合中搜索元素几乎相同。搜索结束时(在树中导航),您已经找到了元素所在的节点,或者找到了一个比要查找的元素大的元素,但是没有任何一个节点的值更低值在其子树中(因此,如果要添加该值,则要在此插入该值,作为该节点的左子节点)。
无论哪种方式,您都可以找到元素的下限。