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;
};
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;
};
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>;
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
}