Matrix_C_plus
Matrix_C_plus
Документация библиотеки S21Matrix
Описание проекта
Библиотека S21Matrix реализует основные операции над матрицами, включая арифметические операции, транспонирование, вычисление определителя и обратной матрицы. Библиотека разработана на языке C++ стандарта C++17 и предназначена для использования в качестве статической библиотеки.
Структура проекта
Проект организован следующим образом:
- src/ — папка с исходным кодом библиотеки.
s21_matrix_oop.h
— заголовочный файл с объявлением классаS21Matrix
.s21_matrix_oop.cpp
— файл реализации методов классаS21Matrix
.
- tests/ — папка с тестами.
test_matrix.cpp
— файл с тестами для библиотеки, написанный с использованием GTest.
- Makefile — файл для сборки библиотеки и тестов.
Класс S21Matrix
Описание
Класс S21Matrix
реализует матрицу и предоставляет методы для выполнения различных операций над матрицами.
Приватные поля
matrix_
— двумерный массив для хранения элементов матрицы.rows_
— количество строк в матрице.cols_
— количество столбцов в матрице.
Конструкторы и деструкторы
-
S21Matrix()
Базовый конструктор, инициализирующий матрицу размерностью 0x0. -
S21Matrix(int rows, int cols)
Параметризированный конструктор для инициализации матрицы с заданным количеством строк и столбцов. -
S21Matrix(const S21Matrix& other)
Конструктор копирования для создания матрицы на основе другой матрицы. -
S21Matrix(S21Matrix&& other)
Конструктор переноса для переноса ресурсов от другой матрицы. -
~S21Matrix()
Деструктор для освобождения ресурсов, занимаемых матрицей.
Методы
-
bool EqMatrix(const S21Matrix& other)
Проверяет равенство текущей матрицы с другой матрицей. -
void SumMatrix(const S21Matrix& other)
Прибавляет ко всем элементам текущей матрицы элементы другой матрицы.
Исключение: Разная размерность матриц. -
void SubMatrix(const S21Matrix& other)
Вычитает из текущей матрицы элементы другой матрицы.
Исключение: Разная размерность матриц. -
void MulNumber(const double num)
Умножает текущую матрицу на скалярное значение. -
void MulMatrix(const S21Matrix& other)
Умножает текущую матрицу на другую матрицу.
Исключение: Количество столбцов первой матрицы не равно количеству строк второй матрицы. -
S21Matrix Transpose()
Возвращает новую матрицу, являющуюся транспонированной версией текущей. -
S21Matrix CalcComplements()
Вычисляет и возвращает матрицу алгебраических дополнений текущей матрицы.
Исключение: Матрица не является квадратной. -
double Determinant()
Вычисляет и возвращает определитель текущей матрицы.
Исключение: Матрица не является квадратной. -
S21Matrix InverseMatrix()
Вычисляет и возвращает обратную матрицу текущей матрицы.
Исключение: Определитель матрицы равен 0.
Перегрузка операторов
-
+
Сложение двух матриц.
Исключение: Разная размерность матриц. -
-
Вычитание одной матрицы из другой.
Исключение: Разная размерность матриц. -
*
Умножение матриц и умножение матрицы на число.
Исключение: Количество столбцов первой матрицы не равно количеству строк второй матрицы. -
==
Проверка на равенство матриц. -
=
Присвоение значений одной матрицы другой. -
+=
Присвоение сложения двух матриц.
Исключение: Разная размерность матриц. -
- =
Присвоение разности двух матриц.
Исключение: Разная размерность матриц. -
*=
Присвоение умножения матрицы на число или другую матрицу.
Исключение: Количество столбцов первой матрицы не равно количеству строк второй матрицы. -
(int i, int j)
Индексация по элементам матрицы (строка, колонка).
Исключение: Индекс выходит за пределы матрицы.
Инструкции по сборке
Использование Makefile
Для сборки библиотеки и тестов используйте следующие команды:
- Сборка библиотеки
make s21_matrix_oop.a