📜  C++ STL-algorithm.binary_search()函数(1)

📅  最后修改于: 2023-12-03 14:59:45.434000             🧑  作者: Mango

C++ STL - algorithm.binary_search() 函数介绍

1. 概述

在C++的STL(algorithm)中,binary_search()函数用于在已排序的容器(如vector、array等)中执行二分查找算法。它返回一个bool值,表示目标值是否存在于容器中。

2. 函数原型

以下是binary_search()函数的原型:

template <class ForwardIterator, class T>
bool binary_search (ForwardIterator first, ForwardIterator last, const T& val);
  • ForwardIterator:表示容器的迭代器类型,必须是随机访问迭代器;
  • first:表示容器的起始位置的迭代器;
  • last:表示容器的结束位置的迭代器;
  • val:表示要搜索的目标值。
3. 使用示例

以下示例演示如何使用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;
}

输出:

目标值存在于容器中
4. 返回值
  • 如果目标值存在于容器中,则返回true
  • 如果目标值不存在于容器中,则返回false
5. 注意事项
  • binary_search()函数要求容器中的元素必须是已按升序排序的;
  • 如果容器中存在多个相同的目标值,binary_search()函数不能保证返回其中哪一个值的位置。

以上就是binary_search()函数的介绍,希望能对你有所帮助!