PriorityQueue.h
Go to the documentation of this file.00001 00010 #ifndef __PriorityQueue_H__ 00011 #define __PriorityQueue_H__ 00012 00013 // Includes 00014 00015 // Forward declares 00016 00017 // PriorityQueue 00018 template<class TYPE> 00019 class PriorityQueue 00020 { 00021 public: 00025 typedef bool (*CompareFunction)(const TYPE& a, const TYPE& b); 00026 00030 PriorityQueue( 00031 CompareFunction compareFunction, 00032 int initialCapacity = 64 00033 ); 00034 00038 PriorityQueue( 00039 const PriorityQueue<TYPE>& priorityQueueToCopy 00040 ); 00041 00045 const PriorityQueue<TYPE>& operator = ( 00046 const PriorityQueue<TYPE>& priorityQueueToCopy 00047 ); 00048 00052 ~PriorityQueue(); 00053 00057 TYPE& Add( 00058 const TYPE& item 00059 ); 00060 00064 TYPE Remove(); 00065 00066 00070 void Update(int index); 00071 00075 bool ItemExists( 00076 const TYPE& item 00077 ) const; 00078 00084 int GetItemCount() const; 00085 00091 TYPE& Get( 00092 int index 00093 ) const; 00094 00095 int GetCapacity() const; 00096 00097 void SetCapacity(int capacity); 00098 00102 void Clear( 00103 bool releaseMemory=true 00104 ); 00105 00106 private: 00107 CompareFunction compareFunction_; 00108 int initialCapacity_; 00109 int capacity_; 00110 int itemCount_; 00111 TYPE* items_; 00112 }; 00113 00114 // Implementation 00115 #include "PriorityQueue.inl" 00116 00117 #endif /* __PriorityQueue_h__ */
Reproduction/republishing of any material on this site without permission is strictly prohibited.
