commit 5eef8f07c58e3b6a348f5b8207e5534bdc070224 Author: Sky Johnson Date: Thu Jul 31 22:35:06 2025 -0500 first commit diff --git a/queue.hpp b/queue.hpp new file mode 100644 index 0000000..33c29ce --- /dev/null +++ b/queue.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include +#include + +template +class Queue { +private: + std::queue> q; + +public: + void push(T* data) { + q.push(std::unique_ptr(data)); + } + + T* pop() { + if (q.empty()) return nullptr; + T* data = q.front().release(); + q.pop(); + return data; + } + + T* top() { + return q.empty() ? nullptr : q.front().get(); + } + + bool empty() { return q.empty(); } + + void clear() { + while (!q.empty()) q.pop(); + } + + int count() { return static_cast(q.size()); } +}; \ No newline at end of file