はじめに
この実験では、C++ プログラミング言語における優先度付きキューの基本機能について学びます。優先度付きキューは、C++ STL(Standard Template Library)のコンテナであり、要素をその優先度に応じて挿入および削除できるようにします。最も高い優先度を持つ要素は常にキューの先頭に配置されます。要素がキューから削除されると、優先度付きキューは自動的に次に高い優先度の要素を正しい位置に挿入することを担当します。
この実験では、C++ プログラミング言語における優先度付きキューの基本機能について学びます。優先度付きキューは、C++ STL(Standard Template Library)のコンテナであり、要素をその優先度に応じて挿入および削除できるようにします。最も高い優先度を持つ要素は常にキューの先頭に配置されます。要素がキューから削除されると、優先度付きキューは自動的に次に高い優先度の要素を正しい位置に挿入することを担当します。
以下のコマンドを使用して、~/project
ディレクトリに新しいファイル main.cpp
を作成します。
touch ~/project/main.cpp
まず、プログラムが正常に動作するために必要なライブラリをインクルードする必要があります。このプログラムでは、iostream
と bits/stdc++.h
ライブラリを使用します。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
show
関数は、優先度付きキューに存在するすべての要素を表示するために使用されます。この関数は、優先度付きキューオブジェクトを引数として取り、元の優先度付きキューを維持するためにキューを別のものにコピーします。その後、優先度付きキューを反復処理して、その中に存在するすべての要素を出力します。
void show(priority_queue<int> q)
{
priority_queue<int> pq = q;
while (!pq.empty())
{
cout << "\t" << pq.top(); //一番上の要素を出力
pq.pop(); //一番上の要素を削除して次の要素に移動
}
cout << endl;
}
main
関数は、すべての処理が行われる場所です。まず、整数型の変数 i
を宣言します。その後、整数型の優先度付きキュー q
を作成します。そして、push
関数を使っていくつかの整数を優先度付きキューに追加します。
その後、show
関数を使って優先度付きキューに存在する要素を表示します。次に、size
関数を使ってキューに存在する要素の数を表示し、top
関数を使って最も高い優先度を持つ要素を表示します。
次に、pop
関数を使って最も高い優先度を持つ要素を削除し、show
関数を使って更新された優先度付きキューを表示します。
int main()
{
priority_queue<int> q;
for (int i = 1; i < 6; i++)
{
q.push(i * 10);
}
cout << "The Priority Queue is: ";
show(q);
cout << "\n\nThe number of elements in the Priority Queue are: " << q.size();
cout << "\n\nThe element with the highest priority is: " << q.top();
q.pop();
cout << "\n\nAfter Deleting the top most element, Priority Queue becomes: ";
show(q);
return 0;
}
C++ で優先度付きキューを実装するには、以下のコードを使用できます。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void show(priority_queue<int> q)
{
priority_queue<int> pq = q;
while (!pq.empty())
{
cout << "\t" << pq.top();
pq.pop();
}
cout << endl;
}
int main()
{
priority_queue<int> q;
for (int i = 1; i < 6; i++)
{
q.push(i * 10);
}
cout << "The Priority Queue is: ";
show(q);
cout << "\n\nThe number of elements in the Priority Queue are: " << q.size();
cout << "\n\nThe element with the highest priority is: " << q.top();
q.pop();
cout << "\n\nAfter Deleting the top most element, Priority Queue becomes: ";
show(q);
return 0;
}
上記のコードを ~/project/main.cpp
に保存します。このコードをコンパイルして実行するには、以下のコマンドを使用します。
g++ main.cpp -o main &&./main
この実験では、C++ における優先度付きキューの基本概念について学びました。また、優先度付きキューを宣言および初期化する方法と、そこから要素を追加、削除、表示する方法も見てきました。このチュートリアルが役に立ったことを願っています。