c++,binary_search函数
时间: 2023-06-20 13:08:55 浏览: 67
`binary_search` 是 C++ STL 中的一个函数,用于在已排序的序列中查找指定元素。其函数原型为:
```c++
template<class ForwardIt, class T>
bool binary_search(ForwardIt first, ForwardIt last, const T& value);
```
其中,`ForwardIt` 是迭代器类型,`first` 和 `last` 分别是指向要查找的序列的起始和结束位置的迭代器,`value` 是要查找的元素。
如果找到了指定元素,函数返回 `true`,否则返回 `false`。
需要注意的是,`binary_search` 函数只能用于已排序的序列。如果要在未排序的序列中查找元素,可以使用 `std::find` 函数。
相关问题
c++,binary_search函数头文件
`binary_search` 函数头文件在 `<algorithm>` 中声明,使用前需要包含该头文件。函数原型如下:
```c++
template< class ForwardIt, class T >
bool binary_search( ForwardIt first, ForwardIt last, const T& value );
template< class ForwardIt, class T, class Compare >
bool binary_search( ForwardIt first, ForwardIt last, const T& value, Compare comp );
```
其中,`ForwardIt` 表示可前向迭代器类型,`T` 表示要查找的值类型,`Compare` 表示比较函数类型。第一个原型使用 `<` 运算符进行比较,第二个原型使用 `comp` 函数进行比较。
注意:输入的范围 `[first, last)` 必须是已排序的序列。
C++ binary_search()用法
C++中的binary_search()函数是用于在有序范围内执行二分查找的函数。它的用法如下所示:
```cpp
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 使用binary_search()函数查找元素5是否存在于vector中
if (std::binary_search(numbers.begin(), numbers.end(), 5)) {
std::cout << "元素5存在于vector中" << std::endl;
} else {
std::cout << "元素5不存在于vector中" << std::endl;
}
return 0;
}
```
以上代码中,我们包含了<algorithm>头文件来使用binary_search()函数。我们创建了一个包含有序整数的vector,并使用binary_search()函数来查找元素5是否存在于其中。如果存在,输出"元素5存在于vector中",否则输出"元素5不存在于vector中"。
注意,binary_search()函数只能告诉我们元素是否存在,而不能返回元素的具体位置。如果需要返回元素的位置,可以使用lower_bound()或upper_bound()函数。