21xrx.com
2024-12-23 01:50:03 Monday
登录
文章检索 我的文章 写文章
C++中的二分查找库函数
2023-07-04 17:04:41 深夜i     --     --
C++ 二分查找 库函数

二分查找是一种高效的查找算法,使用起来简单而且快速。在C++中,STL库中提供了二分查找的函数,使得程序员不必自己实现算法。

在STL库中,二分查找函数被放在了 头文件中。函数的声明如下:


template<class ForwardIterator, class T>

bool binary_search (ForwardIterator first, ForwardIterator last, const T& val);

其中,`ForwardIterator` 表示迭代器类型,`T` 表示两个元素的比较结果类型,`first` 和 `last` 分别表示查找范围的开始和结束位置,`val` 是待查找的值。函数返回一个 `bool` 值,表示查找是否成功。

下面是一个具体的例子,演示如何调用 STL 库中的 `binary_search` 函数查找一个整数在一个数组中是否存在。


#include <algorithm>

#include <iostream>

using namespace std;

int main() {

  int arr[] = 1;

  int n = sizeof(arr) / sizeof(int);

  if (binary_search(arr, arr + n, 7))

    cout << "7 exists in the array";

  else

    cout << "7 does not exist in the array";

  return 0;

}

在上面的例子中,我们首先定义了一个整数数组,并通过 `sizeof` 运算符与指针类型大小相除得到数组长度。接下来调用 `binary_search` 函数进行查找,如果查找成功则输出相应信息。

需要注意的是,查找范围是一个左闭右开的区间,即 `[first, last)`,所以在本例中 `arr + n` 表示查找范围的最后一个元素的下一个位置。

总之,C++ STL 库中的二分查找函数是一个很方便的工具,可以帮助我们快速定位数组、容器等数据结构中的元素,减少代码量,提高效率。

  
  

评论区

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