kuvshinovdr / OGxx

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

St_matrix_window_view #21

Open kuvshinovdr opened 1 year ago

kuvshinovdr commented 1 year ago

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

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