#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]<<" ";
}
}
Input
3 10 20 30
Expected Output
Buffer size: 3 10 20 30