主要是2個東西:lower_bound和upper_bound的用法
1)lower_bound
int p=
lower_bound
(a,a+n,x)
-a;//在已排陣列a中尋找x的位置
易知其含義:是尋找大於或等於x的第乙個位置
int a[7]
=;sort
(a,a+7)
;int
*p=lower_bound
(a,a+7,
5);cout<<
*p<<
","/輸出=>5,1
2)upper_bound
其含義:尋找大於x的第乙個位置
int a[7]
=;sort
(a,a+7)
;int
*p=upper_bound
(a,a+7,
5);cout<<
*p<<
","/輸出=>7,3
ps:如果找的數不在其陣列範圍內,那麼輸出排序後的最後乙個數
在上面的基礎上
cout<<
*upper_bound
(a,a+7,
13)/=>21
stl 二分查詢
在stl中對二分查詢進行了封裝,有兩種 upper bound,lower bound。例如 pos lower bound a,a n,value 查詢value值在長度為n的陣列a中的位置 關於返回值,函式lower bound 在first和last中的前閉後開區間進行二分查詢,返回大於或等於...
STL 二分查詢
實現原始碼 1.在乙個遞增的陣列 或vector 中查詢元素屬於 s e 的下標 2.查詢遞增陣列中元素是否存在 使用binary search 注 對於結構體,要麼過載小於符號 bool operator 要麼定義有小於符號含義的cmp函式。3.應用在遞減序列中 include include i...
STL中提供 二分查詢演算法
stl包含四種不同的二分查詢演算法,binary search lower bound upper bound equal range.他們作用的range是已sorted。binary search試圖在已排序的 first,last 中尋找元素value。如果 first,last 內有等價於v...