C++ 算法 binary_search() 函数

定义和用法

binary_search() 函数是一种高效的算法,用于检查某个值是否存在于数据范围内。

注意:数据范围必须已经是有序的。如果数据范围未排序,该函数可能返回错误结果。

可以使用 sort() 函数对数据范围内的元素进行排序。

数据范围通过迭代器指定。

实例

检查某个值是否存在于已排序的 vector 中:

vector<int> numbers = {1, 7, 3, 5, 9, 2};
sort(numbers.begin(), numbers.end());
if (binary_search(numbers.begin(), numbers.end(), 5)) {
  cout << "找到了数字 5!";
} else {
  cout << "未找到数字 5。";
}

亲自试一试

语法

binary_search(iterator start, iterator end, <type> value);

其中 <type> 表示数据范围包含的数据类型。

参数

参数 描述
start 必需。指向要搜索数据范围起始位置的迭代器。
end

必需。指向要搜索数据范围结束位置的迭代器。

将搜索到该位置之前的元素,但不包含该位置上的元素。

value 必需。要搜索的目标值。

技术细节

返回:

布尔值:

  • 1 - 如果在数据范围内找到目标值
  • 0 - 如果在数据范围内未找到目标值

相关页面

教程:C++ 数据结构

教程:C++ 迭代器

教程:C++ 算法