C++でのpriority_queueの使い方は何ですか?
C++において、priority_queueはPriority Queue(優先度付きキュー)を実装したコンテナアダプターです。優先度付きキューは特殊なコンテナであり、各要素に優先度があります。通常のキューとは異なり、優先度付きキューでは要素が優先度順に並び替えられ、挿入順ではありません。
priority_queueのテンプレートクラスはヘッダーファイルにあり、以下のコードでそれを含めることができます:
#include <queue>
priority_queueの一般的な方法や操作には、以下のものがあります:
- push(element):要素を優先度キューに挿入します。
- pop():優先度キューからトップ要素を削除します。
- top()メソッドは、優先度キューの一番上の要素にアクセスします。
- size():優先度付きキュー内の要素数を返す。
- empty()メソッドは、優先度付きキューが空かどうかを確認します。
優先度キューの要素は、デフォルトで”<“演算子によって並べ替えられるため、要素のタイプは”<“演算子の比較をサポートしている必要があります。また、独自の比較関数を渡すことで要素の並び替え規則を変更することもできます。
priority_queueを使用した簡単な例を以下に示す:
#include <iostream>
#include <queue>
int main() {
std::priority_queue<int> pq;
pq.push(10);
pq.push(5);
pq.push(15);
std::cout << "Size of priority queue: " << pq.size() << std::endl;
std::cout << "Top element: " << pq.top() << std::endl;
pq.pop();
std::cout << "Size of priority queue after pop: " << pq.size() << std::endl;
std::cout << "New top element: " << pq.top() << std::endl;
return 0;
}
この例では、整数を格納するpriority_queueが作成されています。その後、3つの整数が挿入され、キューのサイズとトップの要素が表示されます。そして、1つの要素がキューから取り出され、再度キューのサイズと新しいトップの要素が表示されます。
結果は:
Size of priority queue: 3
Top element: 15
Size of priority queue after pop: 2
New top element: 10