1. 程式人生 > >STL二分查找

STL二分查找

技術分享 .com pos img .html hive cnblogs ref 分享

實現源碼:https://www.cnblogs.com/cobbliu/archive/2012/05/21/2512249.html


1.在一個遞增的數組(或vector)中查找元素屬於[ s , e ) 的下標

int main()
{
    const int n=10;
              //0 1 2 3 4 5 6 7 8 9
    int arr[n]={1,2,3,4,5,5,5,5,9,10};
    int s,e;
    I("%d%d",&s,&e);
    int s_pos=lower_bound(arr,arr+n,s)-arr;
    int
e_pos=upper_bound(arr,arr+n,e)-arr; O("%d,%d\n",s_pos,e_pos); return 0; }

技術分享圖片


2.查找遞增數組中元素是否存在

使用binary_search

註:

對於結構體,要麽重載小於符號:

①bool operator<(const struct b) const

②要麽定義有小於符號含義的cmp函數。

STL二分查找