C++priority_queue用法の詳細

4414 ワード

priority_queue
このテンプレートクラスpriority_queueは、STLが提供する非常に有効な容器です.
キューの延長として、優先キューはヘッダファイルに含まれます.
優先キューを簡単に説明する際の重要なデータ構造で、2つのキューが記述されており、作成された優先キューの性質に基づいて最大値または最小値がO(log n)の効率で1つのキューの最大値または最小値を検索できます.
テンプレートパラメータ
優先キューには、次の3つのパラメータがあります.
priority_queue< type, container, function >

この3つのパラメータは、後の2つは省略できますが、1つ目はできません.次のようになります.
type:データ型;container:優先キューを実現する下位コンテナ;function:要素間の比較方法;containerの場合、listを使用することなくvector、dequeなどの配列形式で実装されるコンテナが必要です.STLでは、デフォルト(後の2つのパラメータを付けない)はvectorをコンテナとし、operator<を比較するため、最初のパラメータのみを使用する場合、優先キューのデフォルトは最大スタックであり、出力されるたびにスタックトップ要素はこのスタックの最大要素である.
メンバー関数
typeタイプがintであると仮定すると、
bool empty() const
//    true,      ;

int size() const
//            ;

void pop()
//         ,     

int top()
//          ,       ;

void push(int arg)
//   arg       ;
  
stk.emplace(arg)    // arg   stk ,     push
  
swap(a,b)      //  a b   ,a b       ,              

a.swap(b)

大天井と小天井
//   
//          (           )
priority_queue<int> big_heap;   

//           
priority_queue<int,vector<int>,less<int> > big_heap2;   
//   
//          ,           
priority_queue<int,vector<int>,greater<int> > small_heap;   

注意すべきは、lessとgreaterを使用する場合、ヘッダファイルが必要です:#include**
参考記事:C++priority_queue c++におけるstack、queue、priorityについて理解し、使用するQueueの紹介