C++ STL的二分查找函数

binary_search 返回bool值,是否存在

lower_bound 返回可插入的最小位置的迭代器,即返回第一个符合条件的元素位置

upper_bound 返回可插入的最大位置的迭代器,即返回最后一个符合条件的元素位置

eg:

lower_bound(a,a+11,55) 实际上是左闭右开

例如:{1,2,3,3,4,5,6,7,8,9}

查找3可插入的最小迭代位置就是应该在第一个3的位置

查找3可插入的最大迭代位置就是应该在5的位置

#include
#include
using namespace std;
int main()
{
	int a[10] = { 1,2,3,3,4,5,6,7,8,9 };
	int b = lower_bound(a, a + 10, 3)-a;
	int c = upper_bound(a, a + 10, 3) - a;
	cout << b << " " << c;
}

C++ STL的二分查找函数_第1张图片

 

你可能感兴趣的:(c++,开发语言)