DataBuffer Fixed Buffer Init

#include <iostream>
using namespace std;

// Write your DataBuffer class here
class DataBuffer{
    private:
        int size;
        int buffer[20];
        int writeIndex;
    public:
        DataBuffer(int s) : buffer{0}{
            if(s<1){
                size = 1;
            }
            else if(s>20){
                size = 20;
            }
            else{
                size = s;
            }
            writeIndex = 0;
        }
        void push(int v){
            if(writeIndex >= size){
                return;
            }
            if(writeIndex < size){
                buffer[writeIndex++] = v;
            }
        }
        void print(){
            if(writeIndex == 0){
                return;
            }
            for(int i=0;i < writeIndex; i++){
                cout << buffer[i];
                if(i != writeIndex - 1) cout <<" ";
            }
        }
};

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