21xrx.com
2024-11-05 17:32:39 Tuesday
登录
文章检索 我的文章 写文章
C++ 的 lower_bound 函数
2023-07-12 13:58:51 深夜i     --     --
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函数可以大幅提高查找效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复