priority queue stl
STLの優先度キューの詳細。
このExplicitC ++シリーズでは、前のチュートリアルでスタックとキューを見てきました。
このチュートリアルでは、STLのさらに別の特殊なコンテナ、つまり優先度付きキューについて説明します。
それはデスクインタビューの質問と回答のpdfを助けます
優先キューは、STLのコンテナ採用者です。優先キューは、最初の要素が常にキュー内の最大の要素になるように、要素が降順ではない順序で配置されたコンテナーです。
=> 完全なC ++チュートリアルリストについては、こちらをご覧ください。
学習内容:
概要概要
FIFOの順序に従って要素をプッシュおよびポップする通常のキューとは対照的に、優先度付きキューには、降順ではない要素があり、各要素の優先度(固定順序)があります。
優先キューは、C ++の「最大ヒープ」データ構造と同様の方法で表示できます。
優先キューの一般的な構文は次のとおりです。
priority_queue queue_name;
したがって、int型の優先度キューを定義する場合は、次のように定義できます。
C ++で書かれたプログラム
priority_queue mypqueue;
優先キュー–操作
以下の優先キューでサポートされている操作を見てみましょう。
- 押す: 優先度付きキューに要素を挿入します。要素を挿入している間、要素の優先順位は維持されます。
- ポップ: 最上位の要素を優先キューから削除します。
- 上: 優先度付きキューの最上位の要素、つまり優先度付きキューの最大の要素を返します。
- 空の: 優先キューが空かどうかを確認します。
- サイズ: 優先キューのサイズ、つまり優先キュー内の要素の数を返します。
これらの関数/操作の使用法を示すプログラムを書いてみましょう。
#include #include using namespace std; void displaypq(priority_queue pri_queue) { priority_queue pq = pri_queue; while (!pq.empty()) { cout << ' ' << pq.top(); pq.pop(); } cout << '
'; } int main () { priority_queue mypq; mypq.push(1); mypq.push(3); mypq.push(60); cout<<'
Priority queue after inserting value 60: '; displaypq(mypq); mypq.push(5); cout<<'
Priority queue after inserting value 5: '; displaypq(mypq); mypq.push(10); cout << '
The priority queue mypq is : '; displaypq(mypq); cout << '
mypq.size() : ' << mypq.size(); cout << '
mypq.top() : ' << mypq.top(); cout << '
mypq.pop() : '; mypq.pop(); displaypq(mypq); return 0; }
出力:
経験豊富なPDFのSQL開発者インタビューの質問と回答
値60を挿入した後の優先キュー:60 3 1
値5を挿入した後の優先キュー:60 5 3 1
優先キューmypqは次のとおりです:60 10 5 3 1
mypq.size():5
mypq.top():60
mypq.pop():10 5 3 1
優先キューを理解するには、出力を注意深く確認してください。まず、出力の最初の行に示されているように、値1,3,60をプッシュします。次に、値5を優先キューにプッシュします。その後、優先キューが表示されます。値5は60の後にプッシュされますが、優先キューの最上位は60のままであることに注意してください。
ここでも、別の値10をプッシュしますが、優先度キューの最上位は60です。これは、要素をプッシュしている間、最大の要素が常に最上位になるように要素の順序または優先度が維持されるためです。
結論
これはすべて、STLでの優先キューの実装に関するものでした。次のチュートリアルでは、mapやsetなどのSTLコンテナについて詳しく学習します。
=> 絶対C ++トレーニングシリーズについては、ここをクリックしてください。
推奨読書
- イラスト付きC ++の優先キューデータ構造
- STLのスタックとキュー
- STLのMAPS
- STLのリスト
- STLで設定
- イラスト付きのC ++でのデータ構造のキュー
- STLのイテレータ
- STLの配列