二分法算法模板 示例代码
时间: 2025-04-20 13:15:04 浏览: 26
### 二分法算法模板及其示例代码
#### 使用C++标准库实现二分查找
C++的标准模板库(STL)提供了多种用于执行二分查找的函数,这些函数可以满足不同的需求。对于基本的二分查找操作,`std::binary_search`是一个简单而有效的选择[^1]。
下面展示了一个利用`std::vector<int>`容器来存储数据并调用`std::binary_search`进行查找的例子:
```cpp
#include <iostream>
#include <algorithm> // std::binary_search
#include <vector>
int main() {
std::vector<int> vec = {1, 3, 5, 7, 9};
int key;
bool found;
// 查找是否存在键值为 'key' 的元素
key = 5;
found = std::binary_search(vec.begin(), vec.end(), key);
if(found){
std::cout << "Element is present in vector\n";
}else{
std::cout << "Element not found!\n";
}
return 0;
}
```
此程序创建了一个整数向量,并通过`std::binary_search`检查给定的关键字是否存在于该序列中。需要注意的是,在调用这个函数之前要确保输入的数据已经按照升序排列好;否则可能会得到错误的结果[^2]。
另外,如果想要获取目标位置而不是仅仅判断存在与否,则应该考虑使用其他版本如`lower_bound`或`upper_bound`等更具体的迭代器返回形式来进行精确定位。
阅读全文
相关推荐




