C++

weikelai發表於2024-12-09

二分

lower_bound/upper_bound

這兩個函式是STL中用於二分查詢的兩個函式,用法:假定我們有一個有序的陣列a,並將數x作為二分查詢的目標,那麼:

lower_bound(a,a+n,x)-a; //下標從0開始
lower_bound(a + 1,a+n+1,x) - a;//下標從1開始

它們就能取得最小的a陣列的下標i,滿足ai >= x

upper_bound(a,a+n,x)-a      //下標從0開始
upper_bound(a+1,a+n+1,x)-a  //下標從1開始

它們就能取得最小的a陣列的下標i,滿足ai > x