STLにPriority_queueを実装するC++プログラム
優先キューは、コンテナーアダプターの一種であり、キューの最初の要素がキュー内のすべての要素の中で最大のものです。要素も優先キューで降順ではありません。優先度の高い要素は、優先度の高いキューで、優先度の低い要素の前に提供されます。
機能と説明:
Functions used here: pq.size() = Returns the size of priority queue. pq.insert) = It is used to insert elements to the priority queue. pq.delete() = Deletes the value from the priority queue. pq.top() = Returns a reference to the top most element of priority queue.
サンプルコード
#include<iostream>
#include <queue>
#include <string>
#include <cstdlib>
using namespace std;
int main() {
priority_queue<int> pq;
int c, i;
while (1) {
cout<<"1.Size of the Priority Queue"<<endl;
cout<<"2.Insert Element into the Priority Queue"<<endl;
cout<<"3.Delete Element from the Priority Queue"<<endl;
cout<<"4.Top Element of the Priority Queue"<<endl;
cout<<"5.Exit"<<endl;
cout<<"Enter your Choice: ";
cin>>c;
switch(c) {
case 1:
cout<<"Size of the Queue: ";
cout<<pq.size()<<endl;
case 2:
cout<<"Enter value to be inserted: ";
cin>>i;
pq.push(i);
break;
case 3:
i = pq.top();
if (!pq.empty()) {
pq.pop();
cout<<i<<" Deleted"<<endl;
} else {
cout<<"Priority Queue is Empty"<<endl;
}
break;
case 4:
cout<<"Top Element of the Queue: ";
cout<<pq.top()<<endl;
break;
case 5:
exit(1);
break;
default:
cout<<"Wrong Choice"<<endl;
}
}
return 0;
} 出力
1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 1 Size of the Queue: 0 Enter value to be inserted: 2 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 1 Size of the Queue: 1 Enter value to be inserted: 2 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 3 2 Deleted 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 1 Size of the Queue: 1 Enter value to be inserted: 2 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 3 2 Deleted 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 2 Enter value to be inserted: 1 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 2 Enter value to be inserted: 2 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 2 Enter value to be inserted: 7 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 2 Enter value to be inserted: 6 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 4 Top Element of the Queue: 7 1.Size of the Priority Queue 2.Insert Element into the Priority Queue 3.Delete Element from the Priority Queue 4.Top Element of the Priority Queue 5.Exit Enter your Choice: 5 Exit code: 1
-
STLにSet_Intersectionを実装するC++プログラム
2つのセットの共通部分は、両方のセットに共通する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin Declare set vector v and iterator st. Initialize st = set_intersection (set1, set1 + n, set2, s
-
STLにSet_Differenceを実装するC++プログラム
2つのセットの違いは、2番目のセットではなく、最初のセットに存在する要素によってのみ形成されます。関数によってコピーされる要素は、常に同じ順序で最初のセットから取得されます。両方のセットの要素はすでに注文されている必要があります。 一般的な集合演算は-です セットユニオン 交差点を設定 対称集合の差または排他的論理和 差または減算を設定 アルゴリズム Begin Declare set vector v and iterator st. Initialize st = set_difference (set1, set1 + n,