All submissions

FixedBuffer Class Template

#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]<<" ";
    }
    
}
Loading...

Input

3 10 20 30

Expected Output

Buffer size: 3 10 20 30