feat: move circular buffer to trading

This commit is contained in:
Barrett Ruth 2024-11-30 14:38:57 -06:00
parent 143a8c988c
commit 5fd49dfb1e
5 changed files with 4 additions and 6 deletions

View file

@ -1,38 +0,0 @@
#include <algorithm>
#include <deque>
#include <stdexcept>
class ExtremaCircularBuffer {
public:
ExtremaCircularBuffer(size_t capacity) : capacity(capacity) {}
void push_back(double value) {
if (prices.size() == capacity) {
prices.pop_front();
}
prices.push_back(value);
}
void pop_front() {
if (prices.empty()) {
throw std::out_of_range("Cannot pop_front() from empty buffer");
}
prices.pop_front();
}
size_t size() const { return prices.size(); }
double get() const {
if (prices.empty()) {
throw std::out_of_range("Cannot find max() of empty buffer");
}
return *std::max_element(prices.begin(), prices.end());
}
private:
std::deque<double> prices;
size_t capacity;
};