Kolejka priorytetowa STL dla klasy

0

Dzień dobry, w jaki sposób napisać kolejkę priorytetową aby na początku kolejki był element o najmniejszej liczbie l1 dla takiej klasy?

typedef float a;
typedef short b;
class klasa
{
public:
    a l1;
    b l2;
};
1

Trzeci parametr szablonu odpowiada za porównywanie. Możesz tam podać własny typ

struct comp
{
  bool operator()(const klasa& left, const klasa& right)
  {
    return left.l1 > right.l1;
  }
};

using my_queue = std::priority_queue<klasa, std::vector<klasa>, comp>;
1
typedef float a;
typedef short b;
class klasa
{
public:
    a l1;
    b l2;
    
    friend bool operator<(const klasa& x, const klasa& y);
};
bool klasa::operator<(const klasa& x, const klasa& y)
{
    // zaimplementuj
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1