Codectionary / Developer documentation / C++

C++ std::priority_queue ordering

priority_queue exposes the highest-priority element. By default this is the largest value; std::greater produces a min-heap suitable for earliest-deadline processing. This example uses C++11 or later.

Syntax

std::priority_queue<int, std::vector<int>, std::greater<int>> pending;

Examples

C++ std::priority_queue ordering

Save as main.cpp and compile with a C++20 compiler, for example g++ -std=c++20 main.cpp -o example. The article states the minimum language version.

#include <queue>
#include <vector>
#include <functional>
#include <iostream>
int main() {
    std::priority_queue<int, std::vector<int>, std::greater<int>> deadlines;
    for (int time : {30, 10, 20}) deadlines.push(time);
    while (!deadlines.empty()) {
        std::cout << deadlines.top() << ' ';
        deadlines.pop();
    }
    std::cout << '\n';
}
  1. Output values: 10 20 30. Input order does not control removal order.

Best practices

  • Use a strict ordering comparator. Do not assume equal-priority values are processed in insertion order.

Runtime & versions

Compiled native applications. Feature availability depends on the language and runtime version used by your project; consult the official reference below.

ISO C++ resources

Specifications & further reading