#include<iostream> #include<stdexcept> using namespace std; template <typename T, size_t N> class FixedBuffer { private: T data[N]; size_t count =0; public: void push(const T& value) { if(count<N) { data[count++] = value; } else { cout<<"Buffer is full"<<endl; } } size_t size() const { return count; } T& operator[](size_t index) { if(index >=count) { throw out_of_range("Index out of range"); } return data[index]; } }; int main() { int n; cin>>n; FixedBuffer<int, 10> Buff; for (int i =0; i<n;i++) { int v; cin>>v; Buff.push(v); } cout<<"Buffer size: "<<Buff.size()<<endl; for(size_t i=0;i<Buff.size();i++) { cout<<Buff[i]<<" "; } }
Test Cases
Test Results
Input
3 10 20 30
Expected Output
Buffer size: 3 10 20 30