std::queue enforces FIFO (First-In, First-Out) order. std::priority_queue orders elements such that the highest (or lowest) priority element is always at the top.
#include <iostream>
#include <queue>
#include <vector>
int main() {
// Min-Heap: Smallest element always surfaces to the top!
std::priority_queue<int, std::vector<int>, std::greater<int>> minHeap;
minHeap.push(40);
minHeap.push(10);
minHeap.push(30);
while (!minHeap.empty()) {
std::cout << minHeap.top() << " "; // Prints: 10 30 40
minHeap.pop();
}
std::cout << "\n";
return 0;
}
Boost your C++ proficiency by studying these closely connected core modules:
Compare FIFO queue vs LIFO stack.
The underlying container for binary heaps.
Heap algorithms (make_heap, pop_heap).