#include <iostream>#include <vector>#include <queue>using namespace std;class Timer;typedef Timer* RTimer;class Timer{public: Timer():_interval(),_expires_time(){} virtual ~Timer(){} ) { } virtual long expires_time() { return this->_expires_time; } virtual long interval_time() { return this->_interval; }public: long _interval; long _expires_time;};struct RTimerCmp{ bool operator()(RTimer left,RTimer right) { if(left->_expires_time == right->_expires_time) { return right->_expires_time > left->_expires_time; } else { return left->_expires_time > right->_expires_time; } }};std::priority_queue<RTimer,std::vector<RTimer>,RTimerCmp > _rtime_queue;int main(){ Timer timer1; timer1._expires_time = ; Timer timer2; timer2._expires_time = ; Timer timer3; timer3._expires_time = ; _rtime_queue.push(&timer1); _rtime_queue.push(&timer3); _rtime_queue.push(&timer2); while(true) { ) { break; } RTimer r = _rtime_queue.top(); cout << "expire " << r->_expires_time << endl; _rtime_queue.pop(); } ;}
:-),记录一下!
stl 容器 优先级队列 指针