C++:数据算法的priority_queue的greater<T>问题,图片下面的代码是怎么样联系的?
图片下面的代码是怎么样联系的?operator怎么和greater勾搭在一起的呢?#include<iostream>#include<queue>usingnamesp...
图片下面的代码是怎么样联系的?operator怎么和 greater勾搭在一起的呢?#include <iostream> #include <queue> using namespace std; class T { public: int x, y, z; T(int a, int b, int c):x(a), y(b), z(c) //定义构造函数并初始化 { } }; bool operator > (const T &t1, const T &t2) //重载 > 运算符{ return t1.z > t2.z; //以最后一个元素为基准进行排序 } int main() { priority_queue<T, vector<T>, greater<T> > q; //因为每一对象中数据很多,所以用一个容器来储存数据 //greater<T>是 重载运算符的使用,不能将greater改为less(T是类) q.push(T(4,4,3)); q.push(T(2,2,5)); q.push(T(1,5,4)); q.push(T(3,3,6)); cout<<"输出情况如下:"<<endl; while (!q.empty()) { T t = q.top(); //定义一个t 变量为q.top()元素 q.pop(); cout << t.x << " " << t.y << " " << t.z << endl; } return 0; }
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询