How are heaps implemented in Python?

How are heaps implemented in C++?

Declaring min and max heaps in Python

Declaring min and max heaps in C++

Max heaps are default in C++:

#include <queue>
#include <vector>

// Max heap (default)
priority_queue<pair<int, int>, vector<pair<int, int>>> max_heap;
priority_queue<pair<int, int>, vector<pair<int, int>>, less<pair<int, int>>> max_heap;

Min heaps can be implemented with an additional parameter:

// Min heap
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> min_heap;

Max heaps w/ custom comparator:

// Custom comparator for max heap (greater than)
struct MaxComparator {
    bool operator()(const pair<int, int>& a, const pair<int, int>& b) const {
        return a.first < b.first;  // Compare first element of pairs
    }
};

// Max heap with custom comparator
priority_queue<pair<int, int>, vector<pair<int, int>>, MaxComparator> maxHeap;

Min heap w/ custom comparator:

// Custom comparator for min heap (less than)
struct MinComparator {
    bool operator()(const pair<int, int>& a, const pair<int, int>& b) const {
        return a.first > b.first;  // Compare first element of pairs
    }
};

// Min heap with custom comparator
priority_queue<pair<int, int>, vector<pair<int, int>>, MinComparator> minHeap;