頭文件: #include <algorithm>
二分查找的函數有 3 個: 參考:C++ lower_bound 和upper_bound
lower_bound(起始地址,結束地址,要查找的數值) 返回的是數值 第一個 出現的位置。
upper_bound(起始地址,結束地址,要查找的數值) 返回的是數值 最後一個 出現的位置。
binary_search(起始地址,結束地址,要查找的數值) 返回的是是否存在這麼一個數,是一個bool值。
1 函數lower_bound() 參考:有關lower_bound()函數的使用
功能:函數lower_bound()在first和last中的前閉後開區間進行二分查找,返回大於或等於val的第一個元素位置。如果所有元素都小於val,則返回last的位置.
注意:如果所有元素都小於val,則返回last的位置,且last的位置是越界的!!
2 函數upper_bound()
功能:函數upper_bound()返回的在前閉後開區間查找的關鍵字的上界,返回大於val的第一個元素位置
注意:返回查找元素的最後一個可安插位置,也就是“元素值>查找值”的第一個元素的位置。同樣,如果val大於數組中全部元素,返回的是last。(注意:數組下標越界)