程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> STL中priority_queue小結

STL中priority_queue小結

編輯:C++入門知識

(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不為空否則可能是未定義的行為

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved