📄 matrix.h
字号:
// Matrix.h: interface for the CMatrix class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_MATRIX_H__27C7BED9_314A_4D5E_BAD3_801093E96309__INCLUDED_)
#define AFX_MATRIX_H__27C7BED9_314A_4D5E_BAD3_801093E96309__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CMatrix
{
private:
int row; // 矩阵的行数
int col; // 矩阵的列数
int n; // 矩阵元素个数
double* mtx; // 动态分配用来存放数组的空间
public:
CMatrix(int row=1, int col=1); // 带默认参数的构造函数
CMatrix(int row, int col, double mtx[]); // 用数组创建一个矩阵
CMatrix(const CMatrix &obj); // copy构造函数
~CMatrix() { delete[] this->mtx; }
//void print()const; // 格式化输出矩阵
int getRow()const { return this->row; } // 访问矩阵行数
int getCol()const { return this->col; } // 访问矩阵列数
int getN()const { return this->n; } // 访问矩阵元素个数
double* getMtx()const { return this->mtx; } // 获取该矩阵的数组
// 用下标访问矩阵元素
double get(const int i, const int j);//const;
// 用下标修改矩阵元素值
void set(const int i, const int j, const double e);
// 重载了一些常用操作符,包括 +,-,x,=,负号,正号,
// A = B
CMatrix &operator= (const CMatrix &obj);
// +A
CMatrix operator+ ()const { return *this; }
// -A
CMatrix operator- ()const;
// A + B
friend CMatrix operator+ (const CMatrix &A, const CMatrix &B);
// A - B
friend CMatrix operator- (const CMatrix &A, const CMatrix &B);
// A * B 两矩阵相乘
friend CMatrix operator* (CMatrix &A, CMatrix &B);
// a * B 实数与矩阵相乘
friend CMatrix operator* (double &a, CMatrix &B);
// A 的转置
//friend CMatrix trv(const CMatrix &A);
// A 的行列式值,采用列主元消去法
// 求行列式须将矩阵化为三角阵,此处为了防止修改原矩阵,采用传值调用
//friend double det(CMatrix A);
// A 的逆矩阵,采用高斯-若当列主元消去法
//friend CMatrix inv(CMatrix A);
/*
public:
//CMatrix(); // 默认的构造函数
virtual ~CMatrix();
*/
};
#endif // !defined(AFX_MATRIX_H__27C7BED9_314A_4D5E_BAD3_801093E96309__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -