C++ STL 二分查找
时间: 2024-01-11 17:22:07 浏览: 81
c++ STL阐述了各种查找算法的异同以及使用他们的时机
以下是C++ STL中使用二分查找的示例代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> haystack {1, 3, 4, 5, 9};
std::vector<int> needles {1, 2, 3};
for (auto needle : needles) {
std::cout << "Searching for " << needle << '\n';
if (std::binary_search(haystack.begin(), haystack.end(), needle)) {
std::cout << "Found " << needle << '\n';
} else {
std::cout << "no dice!\n";
}
}
}
```
这段代码使用了`std::binary_search`函数来进行二分查找。它接受一个有序范围(在本例中是`haystack`向量)和一个要查找的值(在本例中是`needle`)。如果找到了该值,则返回`true`,否则返回`false`。
在上述代码中,我们使用了一个循环来遍历`needles`向量中的每个元素,并对每个元素进行二分查找。如果找到了该元素,则输出"Found",否则输出"no dice!"。
阅读全文