std::priority_queue::top(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

✨ NAME ✨

okay so this is std::priority_queue::top(3), straight from the C++ Standard Libary man pages β€” yes bestie, that’s the spelling in the header, we’re not fixing it, it’s iconic πŸ’…. And this page is all about the top() member of std::priority_queue. Obsessed.


πŸŽ€ Synopsis πŸŽ€

const_reference top() const;

This one returns a reference to the top element in the priority queue. That element is the one that will be removed on a call to pop(). And if the default comparison function is used, the returned element is also the greatest among the elements in the queue. periodt. πŸ’–


🌸 Parameters 🌸

  • there are none. Literally (none), bestie. Not a single argument. 🫢

πŸ¦‹ Return value πŸ¦‹

A reference to the top element, as if obtained by a call to c.front(). That’s the whole return value, no cap. ✨


⭐ Complexity ⭐

Constant. That’s the vibe. 🌈


πŸ”₯ Example πŸ”₯

Run this code, bestie:

// Run this code

#include <iostream>
#include <queue>

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:\t";

    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 << "\nProcess events:\t\t";

    for (; !events.empty(); events.pop())
    {
        Event const& e = events.top();
        std::cout << e << ' ';
    }

    std::cout << '\n';
}

πŸ’» 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'}

🌈 See also 🌈

  • pop β€” removes the top element (public member function). That’s the one, bestie. 🫢

Source/version/date cuteness: this page is from http://cppreference.com, version/date 2024.06.10, and it’s std::priority_queue::top(3). Byeee, go call top() responsibly πŸ’–βœ¨

πŸ“¦ where this page comes from