📌  相关文章
📜  下界 c++ (1)

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

下界

下界即 lower bound,指在一个有序数组中,找到第一个大于等于某个值的元素所在位置。在 C++ 中,使用 lower_bound 函数来实现。

下界的使用场景可以举一个简单的例子:有一组排好序的数,需要在其中查找第一个等于或大于某个值的元素,那么下界函数可以方便地实现这个需求。

lower_bound 函数

lower_bound 函数定义如下:

template<class ForwardIt, class T>
ForwardIt lower_bound(ForwardIt first, ForwardIt last, const T& value);
  • firstlast 参数指定一个前闭后开的区间,这个区间内包含了要查找的元素;
  • value 参数是我们要查找的值;
  • 返回值是一个迭代器,指向第一个不小于 value 的元素。

下面是一个简单的示例代码,演示了如何在一个有序数组中查找一个元素的下界:

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    vector<int> vec = { 1, 2, 2, 3, 5, 6 };
    int x = 2;

    auto it = lower_bound(vec.begin(), vec.end(), x);
    cout << "The lower bound for " << x << " is at position "
         << it - vec.begin() << endl;

    return 0;
}

输出:

The lower bound for 2 is at position 1

上述代码在一个有序的 vector 容器中查找元素 2 的下界。输出结果是 1,说明元素 2 第一次出现的位置在容器的第 1 个位置(C++ 中数组下标从 0 开始),也就是说,如果要将元素 2 插入到这个容器中,应该插在第 1 个位置。

总结

下界是 STL 中的一个常用算法,可以在有序数组中查找第一个不小于指定元素的位置。下界函数 lower_bound 是一个非常实用的工具,可以方便地帮助我们实现各种需求。