lower_bound仿函数
时间: 2023-10-29 20:22:32 浏览: 36
lower_bound仿函数是C++标准库中的一个函数对象模板,用于在有序容器(如vector、list、set、map等)中进行查找操作。它可以帮助我们找到第一个大于或等于指定值的元素的位置。
lower_bound函数模板的声明如下:
```cpp
template<class ForwardIt, class T>
ForwardIt lower_bound(ForwardIt first, ForwardIt last, const T& value);
```
其中,`ForwardIt`是一个迭代器类型,表示待查找范围的起始和结束位置,`T`是待查找的值。
lower_bound函数的作用是返回一个迭代器,指向容器中第一个不小于value的元素位置。如果容器中不存在大于或等于value的元素,则返回指向容器末尾的迭代器。
它的使用示例如下:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7};
int target = 3;
auto it = std::lower_bound(vec.begin(), vec.end(), target);
if (it != vec.end()) {
std::cout << "First element >= " << target << " is: " << *it << std::endl;
} else {
std::cout << "No element >= " << target << " found!" << std::endl;
}
return 0;
}
```
在上述示例中,我们使用lower_bound函数在有序的vector中查找第一个大于或等于3的元素的位置,并输出该元素的值。输出结果为"First element >= 3 is: 3"。