kuvshinovdr / OGxx

Object-oriented graph algorithm library in C++ developed for educational purposes.
MIT License
1 stars 1 forks source link

Bit_matrix_window_view #20

Open kuvshinovdr opened 1 year ago

kuvshinovdr commented 1 year ago

Обновить ветку по main. Создать файл source/bit_matrix_window_view.cpp. В нём создать класс ogxx::Bit_matrix_window_view: public ogxx::Bit_matrix. Данный класс реализует вид на подматрицу, заданную окном в другой матрице. В нём создать приватные поля Matrix_window _window и Bit_matrix* _matrix. Реализовать интерфейс матрицы. Идея следующая: если мы обращаемся по индексу (i, j), то проверяем, вписывается ли он в размеры окна, и, если да, то обращаемся к _matrix по индексу (i + _window.position.row, j + _window.position.col).

Вероятно, следует какой-то функционал, вроде проверки попадания позиции в матрице в окно и складывания позиций (как двумерных векторов) вынести в ogxx/matrix.hpp. Похожая задача у Екатерины Остапенко.