what mean two variables written together without any assignments? : Making class for work with stack (code is not mine)

I have code like this:

    class stack {
    private:
        int size;
        int* data;
        // what next line mean?
        size_t ptr;
        public:

 
    stack(int valid_stack_size) {
        this->size = valid_stack_size;
        this->ptr = 0;
        this->data = new int[valid_stack_size];
    }
 
    void push(int value) {
        if (this->ptr >= (size_t)this->size)
			cout << "Стек полон" << endl;
        this->data[this->ptr++] = value;
 
    }
 
    int pop() {
        if (this->ptr == 0)
			cout << "Стек пуст" << endl;
 
        return this->data[--this->ptr];
 
    }
 
 

    };

what does size_t ptr mean? size_t takes ptr value? or?

Sorry for my bad english