C++ STL
iterator lower_bound( const key_type &key );
iterator upper_bound( const key_type &key );
函數作用
iterator lower_bound( const key_type &key ): 返回一個迭代器,指向鍵值>= key的第一個元素。
iterator upper_bound( const key_type &key ):返回一個迭代器,指向鍵值> key的第一個元素。
lower_bound()函數
第一個版本:
template< class ForwardIterator, class Type >
ForwardIterator
lower_bound( ForwardIterator first,
ForwardIterator last, const Type &value );
第二個版本:
template< class ForwardIterator, class Type, class Compare >
ForwardIterator
lower_bound( ForwardIterator first,
ForwardIterator last, const Type &value,
Compare comp );
函數介紹
lower_bound()返回一個 iterator 它指向在[first,last)標記的有序序列中可以插入value,而不會破壞容器順序的第一個位置,而這個位置標記了一個大於等於value 的值。
例如,有如下序列:
ia[]={12,15,17,19,20,22,23,26,29,35,40,51};
用值21調用lower_bound(),返回一個指向22的iterator。用值22調用lower_bound(),也返回一個指向22的iterator。第一個版本使用底層的 < (小於)操作符,第二個版本根據comp進行排序和比較。
注意事項
調用lower_bound之前必須確定序列為有序序列,否則調用出錯。第一個版本排序根據底層的 <(小於)操作符,第二個版本根據comp進行排序。