1
0

first commit

This commit is contained in:
Sky Johnson 2025-07-31 22:35:06 -05:00
commit 5eef8f07c5

34
queue.hpp Normal file
View File

@ -0,0 +1,34 @@
#pragma once
#include <queue>
#include <memory>
template<class T>
class Queue {
private:
std::queue<std::unique_ptr<T>> q;
public:
void push(T* data) {
q.push(std::unique_ptr<T>(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<int>(q.size()); }
};