binary_search在c++如何使用
时间: 2024-10-21 16:03:03 浏览: 11
在C++中,`binary_search`是一个用于在一维已排序数组中查找特定元素的标准库函数。它属于`<algorithm>`头文件,通常用于寻找给定值是否在数组范围内,如果找到则返回插入位置,否则返回比该值大的下一个位置。
以下是使用`binary_search`的基本步骤:
```cpp
#include <algorithm>
#include <vector>
// 假设我们有一个按升序排列的整数向量 `arr`
std::vector<int> arr = {1, 3, 5, 7, 9, 11};
int target; // 要搜索的目标值
// 使用binary_search查找目标值
bool found = std::binary_search(arr.begin(), arr.end(), target);
if (found) {
// 如果找到,cout表示插入的位置(从0开始)
int position = std::distance(arr.begin(), arr.lower_bound(target));
std::cout << "Value " << target << " found at index " << position << "\n";
} else {
std::cout << "Value not found in the array.\n";
}
```
在这个例子中,`begin()`和`end()`提供范围,`lower_bound()`函数帮助确定目标值应插入的位置以保持数组有序。如果没有找到,`binary_search`会返回`end()`迭代器,这表明目标不在数组内。
阅读全文