STL中的lower_bound() 和 upper_bound()


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進行排序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM