c++笔记(二分查找)
2025-07-27 08:27:12
发布于:上海
1.binary_search
功能:判断序列中是否存在目标值。
语法:bool binary_search(首迭代器,尾迭代器,目标值);
返回值:存在返回true,否则false。
示例:
vector<int>v={1,3,5,7,9};
bool has_5=binary_search(v.begin(),v.end(),5);//true
2.lower_bound
功能:查找第一个大于等于目标值的元素位置。
语法: lower_bound(首迭代器,尾迭代器,目标值);
返回值:若存在返回该元素迭代器,否则返回尾迭代器(end())。
示例:
vector<int>v={1,3,5,7,9};
auto it=lower_bound(v.begin(),v.end(),5);//指向5的位置
3.upper_bound
功能:查找第一个大于目标值的元素位置。
语法: upper_bound(首迭代器,尾迭代器,目标值);
返回值:若存在返回该元素迭代器,否则返回尾迭代器(end())。
示例:
vector<int>v={1,3,5,7,9};
auto it=upper_bound(v.begin(),v.end(),5);//指向7的位置
全部评论 1
注:这三个函数严格属于上升序列
4天前 来自 上海
1
有帮助,赞一个