upper_bound

upper_bound

default (1) template ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val) 指向[first , last)中第一個>val的元素; custom (2) template ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val, Compare comp); 指向[first , last)中第一個>val的元素,自定義=val的元素 custom (2) template ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, const T& val, Compare comp); 指向[first , last)中第一個>=val的元素,自定義

代碼

C++ STL

iterator lower_bound( const key_type &key );

iterator upper_bound( const key_type &key );

函式作用

default (1) template <class ForwardIterator, class T> ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val)

指向[first , last)中第一個>=val的元素;

custom (2) template <class ForwardIterator, class T, class Compare> ForwardIterator lower_bound (ForwardIterator first, ForwardIterator last, const T& val, Compare comp);

指向[first , last)中第一個>=val的元素,自定義<比較符號;

default (1) template <class ForwardIterator, class T> ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val)

指向[first , last)中第一個>val的元素;

custom (2) template <class ForwardIterator, class T, class Compare> ForwardIterator upper_bound (ForwardIterator first, ForwardIterator last, const T& val, Compare comp);

指向[first , last)中第一個>val的元素,自定義<比較符號;

以上兩種bound,需要在[beging , end)中元素已經排序。其在可隨機訪問疊代器中,擁有很高的查找效率。

舉例

例如:map中已經插入了1,2,3,4的話,如果lower_bound(2)的話,返回的2,而upper_bound(2)的話,返回的就是3

equal_range函式返回一個pair,pair裡面第一個變數是lower_bound返回的疊代器,pair裡面第二個疊代器是upper_bound返回的疊代器,如果這兩個疊代器相等的話,則說明map中不出現這個關鍵字,程式說明

相關詞條

熱門詞條

聯絡我們