কম্পিউটার টিউটোরিয়াল

C++ STL-এ স্ট্রাকচার/ক্লাসের জন্য Priority Queue (STL Priority Queue for Structure or Class)

কাস্টম টাইপে প্রায়োরিটি কিউ

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; ব্যবহার করুন।

  1. C++ STL-এ প্রায়োরিটি কিউ (Priority Queue)

  2. ডাবলি লিংকড লিস্ট দিয়ে প্রায়োরিটি কিউ বাস্তবায়ন C++-তে

  3. প্রায়োরিটি শিডিউলিং (Priority Scheduling) C++ প্রোগ্রাম

  4. C++-এ STL ব্যবহার করে BFS (কম্পিটিটিভ কোডিং için)