#include <iostream> using namespace std; template<typename T, size_t N> class FixedBuffer { private: // your code here T data[N]; size_t index; public: FixedBuffer() : index(0) {} void push(T v) { if (index < N) { data[index++] = v; } } size_t size() const { return index; } T operator[](size_t i) const { return data[i]; } }; int main() { int n; cin >> n; FixedBuffer<int, 10> buf; // max 10 elements for (int i = 0; i < n; i++) { int v; cin >> v; buf.push(v); } cout << "Buffer size: " << buf.size() << "\n"; for (size_t i = 0; i < buf.size(); i++) { cout << buf[i] << " "; } cout << "\n"; return 0; }
Test Cases
Test Results
Input
3 10 20 30
Expected Output
Buffer size: 3 10 20 30