在C++的<algorithm>
库中,std::binary_search
函数可以在一个已排序的向量中查找一个元素。这个函数使用二元搜索算法,它的时间复杂度是O(log n)。
函数原型:
bool binary_search(ForwardIt first, ForwardIt last, const T& value);
其中,first
和last
是向量的迭代器,value
是要查找的元素。
示例代码:
#include<iostream>
#include<vector>
#include<algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
int target = 3;
if (std::binary_search(vec.begin(), vec.end(), target)) {
std::cout << "Found "<< target << " in the vector."<< std::endl;
} else {
std::cout << "Could not find "<< target << " in the vector."<< std::endl;
}
return 0;
}
输出:
Found 3 in the vector.
需要注意的是,std::binary_search
函数要求输入的向量是有序的。如果向量未排序,可以使用std::sort
函数对其进行排序。
Elastic 实战工作坊
Elastic 实战工作坊
云+社区技术沙龙[第17期]
DB TALK 技术分享会
Elastic 中国开发者大会
DBTalk
云+社区技术沙龙[第8期]
云+社区技术沙龙 [第31期]
云+社区技术沙龙[第12期]
领取专属 10元无门槛券
手把手带您无忧上云