📅  最后修改于: 2023-12-03 15:29:53.787000             🧑  作者: Mango
C++中的lower_bound是STL中的一个函数,用于在有序序列中查找第一个不小于给定值的元素。
template<class ForwardIt, class T>
ForwardIt lower_bound(ForwardIt first, ForwardIt last, const T& value);
其中,ForwardIt
表示指向有序序列元素的迭代器类型,T
为希望查找的值的类型。
下面是一个使用lower_bound函数的示例:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v = { 1, 2, 3, 4, 5, 6 };
int target = 3;
auto it = std::lower_bound(v.begin(), v.end(), target);
if (it != v.end() && *it == target) {
std::cout << "Found " << target << " at index " << (it - v.begin()) << std::endl;
} else {
std::cout << "Could not find " << target << std::endl;
}
return 0;
}
在上面的代码中,lower_bound函数用于查找vector
lower_bound函数的时间复杂度为$O(logN)$,其中,N为序列中元素的数量。