C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の構造またはクラスのSTL優先度キュー


STL Priority Queueは、maxheapの実装です。

これは、構造体のSTL優先度キューのC++プログラムです。

アルゴリズム

Begin
   Define a structure of type student.
   Initialize variables in student structure.
   Define another structure of type comparemarks
   Overload the variables of student structure in comapremarks
   structure.
   Use priority queue with structure.
   Insert some elements in priority queue using student structure.
   While the queue is not empty do
      Print the elements.
End.

サンプルコード

#include <iostream>
#include <queue>
using namespace std;
#define ROW 6
#define COL 3
struct student { //defining the student structure
   int roll,marks;
   student(int roll, int marks)
      : roll(roll), marks(marks)
   {
   }
};
struct comparemarks{ // defining the comparemarks structure
   bool operator()(student const& s1, student const& s2)
   //overloading the operators of the student structure
   {
      return s1.marks < s2.marks;
   }
};
int main()
{
   priority_queue<student, vector<student>, comparemarks> M;
   // using the priority queue. We have to use this type of syntax to use the priority queue.
   int a[ROW][COL] = {{15, 50}, {16, 60},
   {18,70}, {14, 80}, {12, 90}, {20, 100}};
   for (int i = 0; i < ROW; ++i) {
      M.push(student(a[i][0], a[i][1])); //inserting variables in the queue
   }
   cout<<"priority queue for structure ::"<<endl;
   while (!M.empty()) {
      student s = M.top();
      M.pop();
      cout << s.roll << " " << s.marks << "\n"; //printing the values
   }
   return 0;
}

出力

priority queue for structure ::
20 100
12 90
14 80
18 70
16 60
15 50

  1. 優先スケジューリングのためのC++プログラム

    n個のプロセス、つまりP1、P2、P3、.......、Pnと、各プロセスに関連付けられた対応するバースト時間と優先度が与えられます。タスクは、優先CPUスケジューリングアルゴリズムを使用して、平均待機時間、平均ターンアラウンドタイム、およびプロセス実行のシーケンスを見つけることです。 待機時間と所要時間とは何ですか? 所要時間 プロセスの送信から完了までの時間間隔です。 所要時間=プロセスの完了–プロセスの提出 待機時間 ターンアラウンドタイムとバーストタイムの差です 待機時間=所要時間–バースト時間 優先スケジューリングとは何ですか? 優先度スケジューリングでは、すべての

  2. C ++での競技コーディングにSTLを使用するBFS?

    幅優先探索(BFS)トラバーサルはアルゴリズムであり、特定のグラフのすべてのノードにアクセスするために使用されます。このトラバーサルアルゴリズムでは、1つのノードが選択され、隣接するすべてのノードが1つずつ訪問されます。隣接するすべての頂点を完了すると、さらに移動して別の頂点をチェックし、隣接する頂点を再度チェックします。 競技コーディングでは、問題を非常に迅速に解決する必要があります。このアルゴリズムを実装するには、STL(C ++の標準ライブラリ)を使用します。キューデータ構造を使用する必要があります。隣接するすべての頂点がキューに追加されます。隣接するすべての頂点が完了すると、1