A priority queue keeps the highest-priority value available at the top.

priority queue A `std::priority_queue` exposes the largest value first by default.
top `top` reads the current highest-priority value without removing it.

Priority Queue Top

urgent
priority_queue_top.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
#include <queue>

int main() {
    int urgent = 7;

    std::priority_queue<int> priorities;
    priorities.push(4);
    priorities.push(urgent);
    priorities.push(9);

    int top = priorities.top();
    int size = static_cast<int>(priorities.size());

    std::cout << "top=" << top << std::endl;
    std::cout << "size=" << size << std::endl;
    return 0;
}
#include <iostream>
#include <queue>

int main() {
    int urgent = 2;

    std::priority_queue<int> priorities;
    priorities.push(4);
    priorities.push(urgent);
    priorities.push(9);

    int top = priorities.top();
    int size = static_cast<int>(priorities.size());

    std::cout << "top=" << top << std::endl;
    std::cout << "size=" << size << std::endl;
    return 0;
}
#include <iostream>
#include <queue>

int main() {
    int urgent = 12;

    std::priority_queue<int> priorities;
    priorities.push(4);
    priorities.push(urgent);
    priorities.push(9);

    int top = priorities.top();
    int size = static_cast<int>(priorities.size());

    std::cout << "top=" << top << std::endl;
    std::cout << "size=" << size << std::endl;
    return 0;
}
  1. urgent ← 7, priorities ← (empty), top ← 9, size ← 3

    4int main() {5    int urgent→ 7 = 7; //@urgent=2, 1267    std::priority_queue<int> priorities→ (empty);8    priorities(empty).push(4);9    priorities(empty).push(urgent7);10    priorities(empty).push(9);1112    int top→ 9 = priorities(empty).top();13    int size→ 3 = static_cast<int>(priorities(empty).size());1415    std::cout << "top=" << top9 << std::endl;16    std::cout << "size=" << size3 << std::endl;17    return 0;18}
    outputtop=9
    size=3
  1. urgent ← 2, priorities ← (empty), top ← 9, size ← 3

    4int main() {5    int urgent→ 2 = 2;67    std::priority_queue<int> priorities→ (empty);8    priorities(empty).push(4);9    priorities(empty).push(urgent2);10    priorities(empty).push(9);1112    int top→ 9 = priorities(empty).top();13    int size→ 3 = static_cast<int>(priorities(empty).size());1415    std::cout << "top=" << top9 << std::endl;16    std::cout << "size=" << size3 << std::endl;17    return 0;18}
    outputtop=9
    size=3
  1. urgent ← 12, priorities ← (empty), top ← 12, size ← 3

    4int main() {5    int urgent→ 12 = 12;67    std::priority_queue<int> priorities→ (empty);8    priorities(empty).push(4);9    priorities(empty).push(urgent12);10    priorities(empty).push(9);1112    int top→ 12 = priorities(empty).top();13    int size→ 3 = static_cast<int>(priorities(empty).size());1415    std::cout << "top=" << top12 << std::endl;16    std::cout << "size=" << size3 << std::endl;17    return 0;18}
    outputtop=12
    size=3