21xrx.com
2025-03-27 22:26:50 Thursday
文章检索 我的文章 写文章
C++ 的 lower_bound 函数
2023-07-12 13:58:51 深夜i     13     0
C++ lower_bound 函数

C++的lower_bound函数是STL(标准模板库)中的一个函数,它允许我们在有序的序列中查找一个元素的位置,并返回第一个大于或等于该元素的位置。

lower_bound函数的语法是:

template <class ForwardIterator, class T>
ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val);

其中,first和last是迭代器,用于定义要搜索的范围,val是要查找的元素的值。lower_bound函数返回的是一个迭代器,它指向第一个大于或等于val的元素的位置,如果找不到大于或等于val的元素,则返回last。

使用lower_bound函数的一个例子:

#include <iostream>
#include <algorithm>
#include <vector>
int main () {
 std::vector<int> v 5;
 // 查找第一个大于或等于5的元素的位置
 auto it = std::lower_bound(v.begin(), v.end(), 5);
 
 if (it != v.end()) {
  std::cout << "The first element not less than 5 is " << *it << '\n';
 } else {
  std::cout << "no element found!\n";
 }
 return 0;
}

在上面的例子中,lower_bound函数被用来查找第一个大于或等于5的元素的位置。由于这个序列是有序的,搜索算法使用了二分查找,它比线性查找更有效。

lower_bound函数可以用于任何支持随机访问的元素类型,如数组、向量、链表和字符串等。使用这个函数可以方便地查找一个元素在有序序列中的位置,特别是在需要查找的元素比较多的场合下,使用lower_bound函数可以大幅提高查找效率。

  
  

评论区