কাস্টম টাইপে প্রায়োরিটি কিউ
std::priority_queue ডিফল্টভাবে ম্যাক্স-হিপ (max-heap) বাস্তবায়ন করে। কাস্টম স্ট্রাকচার বা ক্লাসের জন্য কম্পারেটর (comparator) দিয়ে অর্ডারিং নির্ধারণ করতে হয়।
উদাহরণ কোড: Student স্ট্রাকচার অনুযায়ী Marks-ভিত্তিক প্রায়োরিটি
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
struct Student {
int roll, marks;
Student(int r, int m) : roll(r), marks(m) {}
};
// কম্পারেটর: বড় marks হাই প্রায়োরিটি (max-heap)
struct CompareMarks {
bool operator()(const Student& s1, const Student& s2) {
return s1.marks < s2.marks; // less = max-heap
}
};
int main() {
priority_queue<Student, vector<Student>, CompareMarks> pq;
int data[6][2] = {{15,50}, {16,60}, {18,70}, {14,80}, {12,90}, {20,100}};
for (auto &d : data) pq.push(Student(d[0], d[1]));
cout << "Priority Queue (High marks first):\n";
while (!pq.empty()) {
Student s = pq.top(); pq.pop();
cout << s.roll << " " << s.marks << "\n";
}
return 0;
}
আউটপুট
Priority Queue (High marks first): 20 100 12 90 14 80 18 70 16 60 15 50
টিপ: মিন-হিপ (min-heap) করতে কম্পারেটরে return s1.marks > s2.marks; ব্যবহার করুন।