每次使用 lower_bound 和 upper_bound 的时候,总是有些模糊,有些纠结。
下面我按自己理解的意思将lower_bound和upper_bound 作了一个简单的比较,留个笔记。
1. 函数使用
lower_bound(first, end, val)
upper_bound(first, end, val)
1. lower_bound 和 upper_bound 的用的都是二分查找,故需要给的数组序列是排序的。
2. lower_bound 返回的是第一个 大于等于 val 的位置,upper_bound 返回的是第一个大于val的位置
例如: 有序数组 1, 5, 9, 11, 11, 13
lower_bound(first, end, 5) - first = 1
upper_bound(first, end, 5) - frist = 2
lower_bound(first, end, 6) - first = 2
upper_bound(first, end, 6) - first = 2
lower_bound(first, end, 11) - frist = 3
upper_bound(first, end, 11) - first = 5
本文详细解释了lower_bound和upper_bound函数的应用与区别,通过实例展示了如何在已排序数组中找到特定值的位置。适用于理解二分查找算法在实际编程中的运用。
9万+

被折叠的 条评论
为什么被折叠?



