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