Создайте шаблонный класс Matrix, который генерирует матрицу NxM и предоставляет: Рекурсивный метод заполнения (например, спиралью или змейкой). Перегруженные операторы +, - и * для матричных операций. Шаблонный метод apply, который применяет функцию ко всем элементам. Требования: Используйте статический массив для хранения данных. Реализуйте хотя бы один рекурсивный метод (например, заполнение по спирали). Перегрузите операторы для работы с матрицами.
Пример вызова:
Matrix<int, 2, 2> mat1; mat1.fillSpiral(); // заполняет матрицу по спирали
Matrix<double, 2, 2> mat2; mat2.fill([](int i, int j) { return i + j; }); // лямбда-заполнение
auto result = mat1 + mat2; // поэлементное сложение
Рекурсивный метод заполнения (например, спиралью или змейкой).
Перегруженные операторы +, - и * для матричных операций.
Шаблонный метод apply, который применяет функцию ко всем элементам.
Требования:
Используйте статический массив для хранения данных.
Реализуйте хотя бы один рекурсивный метод (например, заполнение по спирали).
Перегрузите операторы для работы с матрицами.
Пример вызова:
Matrix<int, 2, 2> mat1;
mat1.fillSpiral(); // заполняет матрицу по спирали
Matrix<double, 2, 2> mat2;
mat2.fill([](int i, int j) { return i + j; }); // лямбда-заполнение
auto result = mat1 + mat2; // поэлементное сложение