📄 matrix1.h
字号:
#include <iostream.h>
class Matrix1 //顺序存储结构的矩阵类
{
private:
int n; //矩阵的阶数
int *table; //一维数组指针
public:
Matrix1(int n=0); //构造空矩阵对象,数据元素全为0
Matrix1(int mat1[],int n); //以一维数组构造矩阵对象
Matrix1(Matrix1 &mat1); //以已知对象构造矩阵对象
~Matrix1(); //析构函数
int get(int i,int j); //获得矩阵的数据元素
bool set(int i,int j,int k); //设置矩阵的数据元素
friend ostream& operator<<(ostream& ostr,Matrix1 &mat);
//输出流运算符重载
Matrix1& operator=(Matrix1 &mat1); //赋值运算符重载
Matrix1& operator+=(Matrix1 &mat2); //加法运算符重载
Matrix1 operator+(Matrix1 &mat2); //加法运算符重载
};
Matrix1::Matrix1(int n) //构造空矩阵对象,数据元素全为0
{
this->n=n;
this->table=NULL;
if(n>0)
{
table=new int[n*n]; //为矩阵分配n*n个存储单元
for(int i=0;i<n*n;i++)
table[i]=0;
}
}
Matrix1::Matrix1(int mat1[],int n) //以一维数组构造矩阵对象
{ //将一维数组mat1中的元素按行优先的方式存储在矩阵对象的一维数组table中
if(n>0 && mat1!=NULL)
{
this->n=n;
table=new int[n*n];
for(int i=0;i<n*n;i++)
table[i]=mat1[i];
}
}
Matrix1::Matrix1(Matrix1 &mat1) //以已知对象构造矩阵对象
{
n=mat1.n;
table=new int[n*n];
for(int i=0;i<n*n;i++)
table[i]=mat1.table[i];
}
Matrix1::~Matrix1() //析构函数
{
delete[] table;
n=0;
}
int Matrix1::get(int i,int j) //返回矩阵第i行第j列的数据元素
{ //1≤i≤n,1≤j≤n
if(i>=1 && i<=n && j>=1 && j<=n)
return *(table+(i-1)*n+j-1);
else
return -32767;
}
bool Matrix1::set(int i,int j,int k) //设置矩阵第i行第j列的数据元素为k
{ //1≤i≤n,1≤j≤n
if(i>=1 && i<=n && j>=1 && j<=n)
{
*(table+(i-1)*n+j-1)=k;
return true;
}
return false;
}
ostream& operator<<(ostream& out,Matrix1 &mat) //输出矩阵对象各元素值
{
cout<<"矩阵:"<<endl;
if(mat.n>0)
for(int i=1;i<=mat.n;i++)
{
for(int j=1;j<=mat.n;j++)
out<<mat.get(i,j)<<" ";
cout<<endl;
}
return out;
}
Matrix1& Matrix1::operator=(Matrix1 &mat1) //矩阵赋值运算
{ //*this=mat1
delete []table;
n=mat1.n;
table=new int[n*n];
for(int i=0;i<n*n;i++)
table[i]=mat1.table[i];
return *this;
}
Matrix1& Matrix1::operator+=(Matrix1 &mat2) //矩阵相加运算
{ //*this+=mat2
for(int i=0;i<n*n;i++)
table[i]=table[i]+mat2.table[i];
return *this;
}
Matrix1 Matrix1::operator+(Matrix1 &mat2) //矩阵相加运算
{ //mat3=*this+mat2
Matrix1 mat3=*this;
mat3+=mat2;
return mat3;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -