DataBuffer Fixed Buffer Init

#include <iostream>
using namespace std;

// Write your DataBuffer class here
class DataBuffer{
private:
    int size;
    int buffer[20];
    int writeIndex;

    static int sanitizeSize(int s){
       if(s>20){s = 20;}
       else if(s<1){s = 1;}
       return s; 
    }


public:
    DataBuffer(int s) 
        : size(sanitizeSize(s)),
            buffer({0}),
            writeIndex(0){
    }

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

    void print(){
        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