Обновить ветку по 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.
Похожая задача у Карины Тарасовой.
Обновить ветку по 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. Похожая задача у Карины Тарасовой.