⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event.h

📁 BigC++的源码
💻 H
字号:
#ifndef EVENT_H#define EVENT_H#include <vector>#include <queue>using std::priority_queue;using std::vector;/**   A single event for a discrete event driven simulation.*/class Event {public:   Event(int t);   /**      Perform one event in the simulation.   */   virtual void do_event() = 0;protected:   friend class EventComparison;   int time;};/**   Compare two events based on their time.*/class EventComparison {public:   bool operator()(const Event* left, const Event* right) const;};inline int rand_int(int a, int b){   return a + rand() % (b - a + 1);}inline Event::Event(int t) : time(t) {}inline bool EventComparison::operator()   (const Event* left, const Event* right) const{   return left->time > right->time;}/**   Simulation framework for event driven simulation.*/class Simulation {public:   /**      Add new event to simulation.      @param new_event the event to add   */   void schedule_event(Event* new_event);   /**      Run the simulation through all events.   */   void run();private:   priority_queue<Event*, vector<Event*>, EventComparison> event_queue;};inline void Simulation::schedule_event(Event* new_event){    event_queue.push(new_event); }#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -