#pragma once #include #include "robot.h" /// /// This class implements a priority queue of pointers to objects of the /// Robot type. /// class RobotQueue { private: std::deque pq; public: // new types typedef std::deque::iterator iterator; // constructors & destructors RobotQueue(void) {}; ~RobotQueue(void) { pq.clear(); }; // methods bool empty() { return pq.empty(); }; int size() { return pq.size(); }; void push(PRobot pr); PRobot pop(); void remove(PRobot pr); iterator remove(iterator pos) { return pq.erase(pos); }; iterator begin() { return pq.begin(); }; iterator end() { return pq.end(); }; // operators const PRobot& operator[](int index) { return pq[index]; }; // aliases #define add push #define erase remove };