30 lines
756 B
C++
30 lines
756 B
C++
// Задача 03 — кольцевой буфер. Заполни реализации.
|
|
#include <cstddef>
|
|
|
|
class RingBuffer {
|
|
public:
|
|
explicit RingBuffer(size_t capacity) : cap_(capacity), data_(new int[capacity ? capacity : 1]), size_(0) {}
|
|
~RingBuffer() { delete[] data_; }
|
|
|
|
bool push(int v) {
|
|
(void)v;
|
|
return false; // TODO
|
|
}
|
|
|
|
bool pop(int& out) {
|
|
(void)out;
|
|
return false; // TODO
|
|
}
|
|
|
|
size_t size() const { return size_; }
|
|
size_t capacity() const { return cap_; }
|
|
bool empty() const { return size_ == 0; }
|
|
bool full() const { return size_ == cap_; }
|
|
|
|
private:
|
|
size_t cap_;
|
|
int* data_;
|
|
size_t size_;
|
|
// добавь head_/tail_ по необходимости
|
|
};
|