WIP: stage all uncommitted work — sprints 46-221, graduation headers, specialist fleet, test steps 909-1988

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Bill
2026-04-22 10:15:48 -06:00
parent 486940cbe4
commit 72ffee68fa
2179 changed files with 82979 additions and 1150 deletions

View File

@@ -0,0 +1,36 @@
#pragma once
#include <queue>
#include <stdexcept>
#include <vector>
#include "WorkItem.h"
struct WorkItemComparator {
bool operator()(const WorkItem& a, const WorkItem& b) const {
return a.priority < b.priority; // max-heap: higher priority first
}
};
class PriorityQueue {
public:
void enqueue(WorkItem item) {
heap_.push(std::move(item));
}
WorkItem dequeue() {
if (heap_.empty()) throw std::underflow_error("queue is empty");
WorkItem top = heap_.top();
heap_.pop();
return top;
}
const WorkItem& peek() const {
if (heap_.empty()) throw std::underflow_error("queue is empty");
return heap_.top();
}
std::size_t size() const { return heap_.size(); }
bool empty() const { return heap_.empty(); }
private:
std::priority_queue<WorkItem, std::vector<WorkItem>, WorkItemComparator> heap_;
};