stl二分查函数
在C++的STL库中,没有直接提供二分查的函数,但是可以通过标准库中的算法库来实现二分查。以下是一个使用C++ STL中的lower_bound和upper_bound函数实现的二分查的例子:
cpp
#include <iostream>
#include <vector>
#include <algorithm>
int binarySearch(const std::vector<int>& nums, int target) {
auto it = std::lower_bound(nums.begin(), nums.end(), target);
if (it != nums.end() && *it == target) {
return std::distance(nums.begin(), it);
} autoitelse {
return -1;
}
}
int main() {
std::vector<int> nums = {1, 3, 5, 7, 9};
int target = 5;
int index = binarySearch(nums, target);
if (index != -1) {
std::cout << "Element found at index " << index << std::endl;
} else {
std::cout << "Element not found" << std::endl;
}
return 0;
}
在上面的代码中,我们首先定义了一个名为binarySearch的函数,该函数接受一个整数向量和一个目标值作为参数,并返回目标值在向量中的索引。我们使用STL中的lower_bound函数来到第一个大于或等于目标值的元素的位置,如果到了目标值,则返回该位置的索引,否则返回-1。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。