STL 中priority_queue小結

(1)爲了運用priority_queue,你必須包含頭文件<queue>:#include<queue>
  
(2)在頭文件中priority_queue定義以下:
namespace std{
      template < class T, class Container = vector<T>, 
                   class Compare = less< typename Container::value_type> >
      class priority_queue;
}
第一個 template 參數表明元素型別,帶有默認值的第二個參數用來定義priority_queue內部存放元素所用的實際容器,缺省採用vector。第三個參數定義出「用以搜索下一個最高優先元素」的排序準則,缺省下是以operator <做爲比較標準。實際上priority_queue只是很單純的把各項操做轉化爲內部容器的對應調用,你能夠使用任何序列式容器來支持priority_queue,只要它們支持隨機存取迭代器和front(),push_back(),pop_back()等動做就好了。因爲priority_queue須要用到STL heap算法,因此其內部容器必須支持隨機存取迭代器。
  
(3)priority_queue的各項操做:
priority_queue::priority_queue()
默認構造函數,產生一個空priority_queue
  
explicit priority_queue::priority_queue( const ComFunc& op)
產生一個priority_queue,以op爲排序準則
  
priority_queue::priority_queue( const ComFunc& op, const Container& cont)
產生一個priority_queue,以op爲排序準則,並以容器cont內的元素爲初值(複製)
  
priority_queue::priority_queue(InputIterator beg, InputIterator end)
產生一個priority_queue,以區間[beg, end)內的元素爲初值
  
priority_queue::priority_queue(InputIterator beg, InputIterator end, const ComFunc& op)
產生一個priority_queue,以區間[beg, end)內的元素爲初值,以op爲排序準則
  
priority_queue::priority_queue(InputIterator beg, InputIterator end, const ComFunc& op, const Container& cont)
產生一個priority_queue,以區間[beg, end)內的元素爲初值,以op爲排序準則及容器cont內的元素爲初值
  
size_type priority_queue::size() const
返回元素個數
  
bool priority_queue::empty() const
判斷priority_queue是否爲空
  
void priority_queue::push( const value_type& elem)
將elem的副本插入priority_queue
  
const value_type& priority_queue::top() const
返回priority_queue的「下一個」元素,調用者必須確保priority_queue不爲空不然多是未定義的行爲
  
void priority_queue::pop()
移除priority_queue的「下一個」元素,調用者必須確保priority_queue不爲空不然多是未定義的行爲
相關文章
相關標籤/搜索