#define ROW 5
#define COL 2
class Person {
public:
int age;
float height;
Person(int age, float height)
: age(age), height(height)
{
}
};
Как этот код перегрузки оператора отвечает за max_Heap ?? если мы заменим <на>, то получится min_heap, как это работает? Что делает сравнение, то есть p1.height
// we are doing operator overloading through this
bool operator<(const Person& p1, const Person& p2)
{
return p1.height < p2.height;
}
int main()
{
priority_queue<Person> Q;
float arr[ROW][COL] = { { 30, 5.5 }, { 25, 5 },
{ 20, 6 }, { 33, 6.1 }, { 23, 5.6 } };
for (int i = 0; i < ROW; ++i) {
Q.push(Person(arr[i][0], arr[i][1]));
// insert an object in priority_queue by using
// the Person class constructor
}
while (!Q.empty()) {
Person p = Q.top();
Q.pop();
cout << p.age << " " << p.height << "\n";
}
return 0;
}