⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mathmetric.h

📁 实现在矩阵的大多数运算,例如加减乘除等,求逆
💻 H
字号:

#ifndef _MATH_METRIC_H_
#define  _MATH_METRIC_H_

#include "stdlib.h"
#include "math.h"

class MathMetric 
{
private:
	//矩阵的行数
	unsigned int line;
	//矩阵的列数
	unsigned int clum;
	//矩阵的元素数据的开头指针
	double* data;

public://下面为构造函数和析构函数
	//空构造函数
	MathMetric();
	//另外一个构造函数
	MathMetric(double*,unsigned int,unsigned int);
	//析构函数,主要完成内存的释放
	virtual ~MathMetric();

public://以下全为静态函数,可以不构造类直接调用
	static double* add(double*,unsigned int,unsigned int,double*,unsigned int,unsigned int);
	static double* sub(double*,unsigned int,unsigned int,double*,unsigned int,unsigned int);
	static double* multiple(double*,unsigned int,unsigned int,double*,unsigned int,unsigned int);
	static double* devide(double*,unsigned int,unsigned int,double*,unsigned int,unsigned int);
	static bool inverse(double* metric1,int n);
	static bool reverse(double* data,unsigned int line,unsigned int colum);

public://重载"+","-","*","/"等各种运算符,以后可以像普通数据类型那样对矩阵进行运算
	MathMetric & operator *(MathMetric&);
	MathMetric & operator -(MathMetric&);
	MathMetric & operator -(void);
	MathMetric & operator +(MathMetric &);
	MathMetric & operator /(MathMetric &);

public://以下为矩阵类的各种属性的获取和设置成员函数
	//求矩阵的转置,此作为内部成员函数
	bool reverse(void);
	//获取数据
	void set_data(double*);

	double* get_data(void);
	void set_colum(unsigned int);
	void set_line(unsigned int);
	unsigned get_colum(void);
	unsigned get_line(void);
	bool print();
};


/**********************************************************
函数名:operator *
功能:重载一个常数与矩阵的"*"运算符
入口参数:k:一个基本数据类型 Metric1:一个任意矩阵
出口参数:*result:一个矩阵,它存储了"*"符号的运算结果
说明:将些函数在头文件中实现,而不是在单独的C文件中实现是有
	  原因的,这样可以不对每种情况具现化,可以杜绝连接错误
**********************************************************/

template <class Type>
MathMetric & operator *(Type k,MathMetric &Metric1)
{
	MathMetric *result;
	double *res;
	res=Metric1.get_data();
	result=new MathMetric(res,Metric1.get_line(),Metric1.get_colum());
	res=result->get_data();
	for(unsigned int i=0;i<Metric1.get_colum()*Metric1.get_line();i++)
		res[i]*=k;
	return *result;
}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -