как получить индекс элемента массива, зная итератор этого элемента, но итератор у меня свой

Я пишу свой контейнер, и также свой итератор для него. Мне нужно написать функцию, благодаря которой я могу получать индекс элемента массива по итератору, однако у меня не получается. Подскажите, пожалуйста, как это сделать.

#include <iostream>


using namespace std;



template<typename T>
class Container {
public:

    

    Container(int size) {
        this->size = size;

        this->check = this->size;

        this->cap = this->size * 2;

        this->array = new T[this->cap];

    }


    T& operator[](int index) {
        return this->array[index];
    }


    class Iterator;

    Iterator begin() { return this->array; }
    Iterator end() { return this->array + this->size; }

    



    class Iterator
    {
    private:
        T* cur;
    public:
        Iterator(T *first) : cur(first)
        {}

        T& operator+ (int n) { return *(cur + n); }
        T& operator- (int n) { return *(cur - n); }

        T& operator++ (int) { return *cur++; }
        T& operator-- (int) { return *cur--; }

        T& operator++ () { return *++cur; }
        T& operator-- () { return *--cur; }

        bool operator!= (const Iterator& it) { return cur != it.cur; }
        bool operator== (const Iterator& it) { return cur == it.cur; }

        T& operator* () { return *cur; }


    };





    


    ~Container() {
        delete[] this->array;
    }

private:
    int size;
    T* array;
    int cap;
    int check;
};

Ответы (0 шт):