DataBuffer Fixed Buffer Init

#include <iostream>
using namespace std;

// Write your DataBuffer class here

class DataBuffer
{
    private: 
    int size;
    int  buffer[20];
    int writeIndex;
     
    int clampsize(int s1)
    {
        if(s1< 1) s1 =1;
        else if ( s1> 20) s1=20;
        return s1;
    }
    public:
    DataBuffer(int s):size(clampsize(s))
    {
        writeIndex =0;
    }

    void push(int v)
    {
        if(writeIndex < size)
        {
            buffer[writeIndex] = v;
            writeIndex++;
        }
    }

    void print()
    {
      if(writeIndex > 0){
       for(int i=0 ; i < writeIndex ; i++) 
       {
        cout<<buffer[i]<<" ";
       }
      }
    }

};
int main() {
    int s, n;
    cin >> s >> n;

    DataBuffer buf(s);

    for (int i = 0; i < n; i++) {
        int x;
        cin >> x;
        buf.push(x);
    }

    buf.print();
    return 0;
}

Solving Approach

 

 

 

 

 

Upvote
Downvote
Loading...

Input

5 7 1 2 3 4 5 6 7

Expected Output

1 2 3 4 5