priority_queue本質上也是乙個queue,但在其基礎上加入了權值的概念,入隊依然是依次入隊,但出隊的時候卻是權值最高的元素先出隊,以滿足一些特殊的需求。heap將極值放到頭節點,可以很好的滿足priority_queue的需求。預設情況下,priority_queue使用vector作為底層容器,使用max-heap進行規制處理。
priority_queue是在heap的基礎上進行的封裝,使用起來是很簡潔的,以下是測試**:
int data[9] = ;
priority_queue a(data,data+9);
cout
<<"size:"
while (!a.empty())
cout
《這裡,我們主要關注一下priority_queue的push和pop操作。由於heap演算法本身並不處理資料的插入刪除操作,因而這部分需要交由底層容器進行處理,以下是push和pop的實現原始碼:
void push(const value_type& __x)
__stl_unwind(c.clear());
} void pop()
__stl_unwind(c.clear());
}
這裡實際是容器和演算法結合使用的結果,單獨使用其中乙個是達不到我們想要的目的的。
priority_queue也是對元素使用了特殊的規則進行約束,不提供遍歷操作,也不提供迭代器。
STL之介面卡
注意 需包含標頭檔案 functional 步驟 bind2nd 或者 bind1st 將兩個引數進行繫結 bind2nd 繫結順序是一致 類繼承 binary function 型別1 型別2 返回值型別 加 const 寫法 class myprint public binary functio...
STL之介面卡
摘要 本文主要講了介面卡的一些內容,重要的是了解介面卡使用的步驟。1 include2 include3 include 4 include5 include 67 using namespace std 89 第一步 繫結 資料 bind2nd 10 繼承類 binary function 引數型...
STL之介面卡
摘要 本文主要講了介面卡的一些內容,重要的是了解介面卡使用的步驟。1 include2 include3 include 4 include5 include 67 using namespace std 89 第一步 繫結 資料 bind2nd 10 繼承類 binary function 引數型...