更新时间:2025-04-03 22:38:46
在C++ STL中,`lower_bound()` 和 `upper_bound()` 是两个非常实用的函数,它们常用于二分查找操作。这两个函数都依赖于有序序列,因此在使用前请确保数据已经排序!🧐
首先,`lower_bound()` 📉 返回第一个不小于目标值的迭代器。简单来说,它会找到目标值在容器中的起始位置。例如,在一个升序数组中寻找数字5,如果存在多个5,它会返回第一个5的位置。
接着,`upper_bound()` 📈 则返回第一个大于目标值的迭代器。换句话说,它会找到目标值在容器中的结束位置(最后一个目标值的后一位)。继续上面的例子,当有多个5时,`upper_bound()` 会指向最后一个5之后的那个元素。
两者的结合可以快速确定某范围内的值数量!✨ 比如,要统计数组中有多少个5,可以用 `upper_bound()-lower_bound()`。这样不仅高效,还能让代码更简洁优雅哦!
掌握这两个函数,能大幅提升你在处理有序数据时的效率!💪