這3個函數是STL庫提供的高效查找工具,之前刷leetcode的時候經常用到,但總是搞混lower_bound和upper_bound,這裏做個總結。下面這3個函數的使用均要求容器序列有序,具體使用例子結果如下:
1. lower_bound函數
顧名思義,這個函數是在一段有序序列當中,查找某個值在序列中的下界。返回第一個大於或等於查找值的迭代器;若不存在,則返回last迭代器。
函數原型爲:
具體實現如下:
2. upper_bound函數
這個函數是在一段有序序列當中,查找某個值在序列中的上界。返回第一個大於查找值的迭代器;若不存在,則返回last迭代器。
函數原型爲:
具體實現爲:
3.binary_search函數
該函數返回布爾值,判斷在有序序列當中是否存在查找值。直接調用lower_bound函數接口。
具體實現爲:
[1]《STL庫源碼剖析》-------侯捷