📌  相关文章
📜  C++中的lower_bound(1)

📅  最后修改于: 2023-12-03 15:29:53.787000             🧑  作者: Mango

C++中的lower_bound

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中第一个不小于3的元素。这里返回的迭代器指向元素3的位置。

复杂度

lower_bound函数的时间复杂度为$O(logN)$,其中,N为序列中元素的数量。