STL中lower_bound()函数的使用
时间: 2024-09-19 16:16:02 浏览: 32
STL(Standard Template Library)中的`lower_bound()`函数是一个算法模板,它用于在一个已排序的范围中查找第一个大于等于给定值的元素的迭代器位置。这个函数通常配合`begin()`和`end()`一起使用,返回的是`first`和`last`之间的迭代器,其中`*first`是第一个大于或等于目标值的元素,如果找不到这样的元素,则返回`last`。
例如,在一个整数容器如`std::vector<int>`中,如果你想找到第一个大于或等于特定值的元素的位置,你可以这样做:
```cpp
#include <algorithm>
#include <vector>
std::vector<int> v = {10, 20, 30, 40, 50};
int target_value = 35;
auto lower_iter = std::lower_bound(v.begin(), v.end(), target_value);
if (lower_iter != v.end()) {
// 找到了,元素在[lower_iter, end())
int found_value = *lower_iter;
std::cout << "第一个大于或等于" << target_value << "的元素是:" << found_value << std::endl;
} else {
// 没有找到,target_value比所有元素都大
std::cout << "没有找到大于或等于" << target_value << "的元素" << std::endl;
}
```
阅读全文