、std::lower_bound的使用
时间: 2024-04-21 14:21:21 浏览: 129
std::lower_bound是C++标准库中的一个函数,用于在有序序列中查找第一个大于或等于给定值的元素的位置。它的使用方式如下:
```cpp
template <class ForwardIterator, class T>
ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val);
```
其中,`first`和`last`是表示序列范围的迭代器,`val`是要查找的值。函数返回一个迭代器,指向序列中第一个大于或等于`val`的元素。
下面是一个示例代码,演示了如何使用std::lower_bound:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int target = 6;
auto it = std::lower_bound(nums.begin(), nums.end(), target);
if (it != nums.end()) {
std::cout << "找到了大于或等于" << target << "的元素:" << *it << std::endl;
} else {
std::cout << "没有找到大于或等于" << target << "的元素" << std::endl;
}
return 0;
}
```
输出结果为:
```
找到了大于或等于6的元素:6
```
如果要查找的值在序列中不存在,std::lower_bound会返回一个指向序列中第一个大于该值的元素的迭代器,或者返回`last`迭代器(表示查找失败)。
阅读全文