二分查找函數(lower_bound、upper_bound和 binary_search)

這3個函數是STL庫提供的高效查找工具,之前刷leetcode的時候經常用到,但總是搞混lower_bound和upper_bound,這裏做個總結。下面這3個函數的使用均要求容器序列有序,具體使用例子結果如下:

1. lower_bound函數

顧名思義,這個函數是在一段有序序列當中,查找某個值在序列中的下界。返回第一個大於或等於查找值的迭代器;若不存在,則返回last迭代器。

函數原型爲:

具體實現如下:

2. upper_bound函數

這個函數是在一段有序序列當中,查找某個值在序列中的上界。返回第一個大於查找值的迭代器;若不存在,則返回last迭代器。

函數原型爲:

具體實現爲:

3.binary_search函數

該函數返回布爾值,判斷在有序序列當中是否存在查找值。直接調用lower_bound函數接口。

具體實現爲:

[1]《STL庫源碼剖析》-------侯捷

 

 

發佈了155 篇原創文章 · 獲贊 2 · 訪問量 2364
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章