Skip to main content

std::priority_queue front

// Const version only
const_reference top() const;

Returns a reference

to the top element in the priority queue.
This element will be the first element to be removed on a call to pop().

note

If default comparison function is used, the returned element is also the greatest among the elements in the queue.

note

Effectively calls c.front().

Parameters

(none)

Return value

Reference to the top element.

Exceptions

(none)

Complexity

Constant - (1).

Example

main.cpp
#include <queue>
#include <iostream>

struct Event
{
int priority{};
char data{' '};

friend bool operator< (Event const& lhs, Event const& rhs) {
return lhs.priority < rhs.priority;
}

friend std::ostream& operator<< (std::ostream& os, Event const& e) {
return os << "{ " << e.priority << ", '" << e.data << "' } ";
}
};

int main()
{
std::priority_queue<Event> events;

std::cout << "Fill the events queue:\n";

for (auto const e: { Event{6,'L'}, {8,'I'}, {9,'S'}, {1,'T'}, {5,'E'}, {3,'N'} }) {
std::cout << e << ' ';
events.push(e);
}

std::cout << "\n" "Process events:\n";

for (; !events.empty(); events.pop()) {
Event const& e = events.top();
std::cout << e << ' ';
}
}
Output
Fill the events queue:
{ 6, 'L' } { 8, 'I' } { 9, 'S' } { 1, 'T' } { 5, 'E' } { 3, 'N' }
Process events:
{ 9, 'S' } { 8, 'I' } { 6, 'L' } { 5, 'E' } { 3, 'N' } { 1, 'T' }

std::priority_queue front

// Const version only
const_reference top() const;

Returns a reference

to the top element in the priority queue.
This element will be the first element to be removed on a call to pop().

note

If default comparison function is used, the returned element is also the greatest among the elements in the queue.

note

Effectively calls c.front().

Parameters

(none)

Return value

Reference to the top element.

Exceptions

(none)

Complexity

Constant - (1).

Example

main.cpp
#include <queue>
#include <iostream>

struct Event
{
int priority{};
char data{' '};

friend bool operator< (Event const& lhs, Event const& rhs) {
return lhs.priority < rhs.priority;
}

friend std::ostream& operator<< (std::ostream& os, Event const& e) {
return os << "{ " << e.priority << ", '" << e.data << "' } ";
}
};

int main()
{
std::priority_queue<Event> events;

std::cout << "Fill the events queue:\n";

for (auto const e: { Event{6,'L'}, {8,'I'}, {9,'S'}, {1,'T'}, {5,'E'}, {3,'N'} }) {
std::cout << e << ' ';
events.push(e);
}

std::cout << "\n" "Process events:\n";

for (; !events.empty(); events.pop()) {
Event const& e = events.top();
std::cout << e << ' ';
}
}
Output
Fill the events queue:
{ 6, 'L' } { 8, 'I' } { 9, 'S' } { 1, 'T' } { 5, 'E' } { 3, 'N' }
Process events:
{ 9, 'S' } { 8, 'I' } { 6, 'L' } { 5, 'E' } { 3, 'N' } { 1, 'T' }