STL(二十)priority_queue優先佇列容器

CopperDong發表於2017-09-01

      優先佇列也是一種從一端入隊,另一端出隊的佇列。不同於一般佇列的是,佇列中最大的元素總是位於隊首位置,因此,元素的出隊並非按照先進先出的要求,將最先入隊的元素出隊,而是將當前佇列中的最大元素出隊。

      STL優先佇列的泛化,底層預設採用vector向量容器,使得佇列容器的元素可做陣列操作,從而應用堆演算法找出當前佇列最大元素,並將它調整到隊首位置,確保最大元素先出隊。

       堆演算法(heap algorithm)具有nlog(n)階的演算法時間複雜度

一、priority_queue技術原理

        大根堆

        小根堆

二、priority_queue應用基礎

#include <queue>

1、建立priority_queue物件

      priority_queue()

      priority_queue(const  priority_queue &)

2、元素入隊

      void  push(const  value_type  &x)

3、元素出隊

      void pop()

4、取隊首元素

      const value_type&  top()  const

5、佇列非空判斷

       bool    empty()

6、佇列的大小

       size_type  size()





相關文章