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

📄 myheader.h

📁 矩阵运算器
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////
//文件名:  Muheader.h
//创建者:  Garmy(郭旭星)
//创建时间:2005/8/31
//内容描述:你面包含许多有关排序的函数
//////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
#include<stdlib.h>
#include<iostream.h>
#include<string.h>
//**************************随机函数****************************/////
int random(int range);


//**************************有关数组****************************/////
////////////
////////////

////升序排列
        void RankUp(int a[],int n);
        void RankUp(float a[],int n);
        void RankUp(double a[],int n);

////降序排列
        void RankDown(int a[],int n);
        void RankDown(float a[],int n);
        void RankDown(double a[],int n);

////求数列的最大者,并返回最大值的下标
        int  RankMax(int a[],int n);
        int  RankMax(float a[],int n);
        int  RankMax(double a[],int n);

////求数列的最小者,并返回最小者的下标
        int RankMin(int a[],int n);
        int RankMin(float a[],int n);
        int RankMin(double a[],int n);

////*******************有关数学运算*************************************///////
/////////////
/////////////

////求一个数的n次幂
        template <class T>
        T  Mici(T data,int n);

////
//friend int  operator ^(int &a,int &b);

////
/**/
///******矩阵类CMatrix******//
//这是二维存储结构
      typedef double DERECT;
      typedef double* LPDERECT;
      class CMatrix
	{
	public:   
     //默认构造一阶方阵
		  CMatrix():m(1),n(1){MakeCol();}
	//构造方阵
		  CMatrix(int nn):m(nn),n(nn){MakeCol();}
	//构造矩阵
		  CMatrix(int mm,int nn):m(mm),n(nn){MakeCol();}
	//从键盘初始化矩阵
		  void Initial();
	//从其他矩阵初始化矩阵
		  void Initial(CMatrix &);
	//row1 - n*row2
		  void Minusrow(int row1,int row2,DERECT n);
	//col1 - n*col2
		  void Minuscol(int col1,int col2,DERECT n);
	//row1 + n*row2
		  void Plusrow(int row1,int row2,DERECT n);
	//col1 + n*col2
		  void Pluscol(int col1,int col2,DERECT n);
	//n * row
		  void Mulrowself(int row,DERECT n);
	//n * col
		  void Mulcolself(int col,DERECT n);
	//row / n
		  void Divrowself(int row,DERECT n);
	//col / n
		  void Divcolself(int col,DERECT n);
	//两矩阵相加
		  friend CMatrix operator+(CMatrix &mat1,CMatrix &mat2);
	//两矩阵相减
		  friend CMatrix operator-(CMatrix &mat1,CMatrix &mat2);
	//两矩阵赋值
		  void operator=(CMatrix mat);
	//判断两矩阵是否相等
		  friend bool operator==(CMatrix &,CMatrix &) ;
	//打印矩阵
		  void Display();
      //矩阵乘以常数
		  friend CMatrix operator*(DERECT , CMatrix);
     
		  friend CMatrix Locmatrix(CMatrix,int row,int col);
	//求伴随矩阵
		  friend CMatrix Conmatrix(CMatrix);
	//求逆矩阵
		  friend CMatrix Nimatrix(CMatrix);
	//两矩阵相乘
		  friend CMatrix  operator*(CMatrix mat1,CMatrix mat2);
      //求一个矩阵的k次幂
		  friend CMatrix Micimatrix(CMatrix mat,int k);
	//初始化一个单位矩阵
		  friend CMatrix Elementmatrix(int );
	//cin入矩阵
		  friend istream &operator>>(istream &ios,CMatrix &a);
	//cout出矩阵
		  friend ostream &operator<<(ostream &out,CMatrix &a); 
      //求行列式的值
		  friend DERECT D(CMatrix b,int jieshu);
	//求转置矩阵
		  friend CMatrix Tansform(CMatrix);
		  
	
	//行交换
		  void Exchangerow(int row1,int row2);
	//列交换
		  void Exchangecol(int col1,int col2);
	//如果是方阵就可求方阵的值,可能返回小数
		  DERECT Derect(CMatrix a,int jieshu);
      //取得右下脚元素
		  DERECT Bot(CMatrix b){return b.a[b.m-1][b.n-1];}
	//取得左上脚元素
		  DERECT Top(CMatrix b){return b.a[0][0];}
		  //存取矩阵
		  LPDERECT *a;
		  
	protected:
		  int m;//行
		  int n;//列
		  //初始化存储空间
		  void MakeCol(){
			    a=new LPDERECT [m];
			    for(int i=0;i<m;i++)
					a[i]=new DERECT [n];
		  }
	};//end CMatrix


////////////
////////////
////////////////////////////////////////////////////////////

/////////////////////////有关字符串/////////////////////////
//////////////
//////////////

///排列字符串中字符的顺序
///升序
char  *SortStrUp(char *string);
///降序
char  *SortStrDown(char *string);

///比较两字符串
int StrCompare(char *str1,char *str2);
///大小写转换
char *StrToCap(char *string);
char *StrToLow(char *string);

///两字符串连接
char *StrCat(char *strBeCat,char *strcat);

//复制字符串
void CopyStr(char *&copy,char *copied);

//求字符串长度
int StrLength(char *string);

///定位子串
int SubStrLoc(char *mainstring,char *substring);

///定位删除
void StrLocDel(char *mainstring,int location,int length);

///定位替换
char * StrLocIns(char *mainstring,int location, int substringlength,char *substring);









 















///////////////////////endl
template <class T>
T  Mici(T data,int n)
{
	  T y=data;
	  if(n==0)
		    y=1;
	  else y=data*Mici(data,n-1);
	  return y;
	  
}

⌨️ 快捷键说明

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