Containers in Practice
Priority Queue Top
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
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;
}
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
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
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