📅  最后修改于: 2023-12-03 14:59:45.434000             🧑  作者: Mango
在C++的STL(algorithm)中,binary_search()
函数用于在已排序的容器(如vector、array等)中执行二分查找算法。它返回一个bool值,表示目标值是否存在于容器中。
以下是binary_search()
函数的原型:
template <class ForwardIterator, class T>
bool binary_search (ForwardIterator first, ForwardIterator last, const T& val);
ForwardIterator
:表示容器的迭代器类型,必须是随机访问迭代器;first
:表示容器的起始位置的迭代器;last
:表示容器的结束位置的迭代器;val
:表示要搜索的目标值。以下示例演示如何使用binary_search()
函数进行二分查找:
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int target = 5;
// 使用 binary_search() 查找目标值
if (std::binary_search(numbers.begin(), numbers.end(), target)) {
std::cout << "目标值存在于容器中" << std::endl;
} else {
std::cout << "目标值不存在于容器中" << std::endl;
}
return 0;
}
输出:
目标值存在于容器中
true
;false
。binary_search()
函数要求容器中的元素必须是已按升序排序的;binary_search()
函数不能保证返回其中哪一个值的位置。以上就是binary_search()
函数的介绍,希望能对你有所帮助!