В рамках данной задачи вам предстоит реализовать класс Matrix - класс матрицы с заданными размерами и типом элементов на этапе компиляции. В данной задаче запрещено использовать слова static_assert и constexpr, если вдруг вы такое знаете.
Операции, которые должны поддерживаться над матрицей: Конструктор по умолчанию заполняет матрицу T(). Конструктор от std::vector<std::vector>, заполняющий матрицу элементами вектора. Гарантируется, что размеры вектора будут совпадать с размерами в шаблонах. Конструктор от T elem. Заполняет всю матрицу elem. Сложение, вычитание, операторы +=, -=. Сложение и вычитание матриц несоответствующих размеров не должно компилироваться. Гарантируется, что типы в матрицах в тестах будут поддерживать соответствующие операции. Умножение на элемент типа T (гарантируется, что оператор * определен для T) Умножение двух матриц. Попытка перемножить матрицы несоответствующих размеров должна приводить к ошибке компиляции. Метод Transposed(), возвращающий транспонированную матрицу. Метод Trace() - вычислить след матрицы. Вычисление следа от неквадратной матрицы не должно компилироваться. Подумайте, как это реализовать! Оператор (i, j), возвращающий элемент матрицы в i-й строке и в j-м столбце. Необходимо уметь менять значение для неконстантных матриц. Оператор проверки на равенство. Гарантируется, что в ходе вычисления все элементы лежат в диапазоне типа T. Примечания В данной задаче разрешено использовать std::vector.
Подробности в личные сообщения
| Гарантия на работу | 1 год |
| Средний балл | 4.52 |
| Стоимость | Назначаете сами |
| Эксперт | Выбираете сами |
| Уникальность работы | от 70% |