📄 trimat.h
字号:
template<class T>
class TriMat
{
private:
T arr [MaxEleNum];
int rowTable[MaxRowNum];
int n;
public:
TriMat(int matSize);
~Trimat(void){};
void PutEle(T item,int i,intj);
T GetEle(int i,int j)const;
TriMat<T>operator+(const TriMat<T>&a)const;
TriMat<T>operator-(const TriMat<T>&a)const;
TriMat<T>operator*(const TriMat<T>&a)const;
void ReadMat(void);
void WriteMat(void)const;
int GetDim(void)const
{return n;};
};
template <class T>
TriMat<T>::TriMat(int matSize)
{
int storedEles=0;
if(matSize>MaxRowNum0)
{
cout<<"矩阵的阶数超过了上限"<<MaxRowNum<<endl;
exit(0);
}
n=matSize;
for (int i=0;i<n;i++)
{
rowTable[i]=storedEles;
storedEles+=n-i;
}
}
template <class T>
void TriMat<T>::PutEle(T item,int i,int j)
{
if((i<1||i>n)||(j<1||j>n))
{
cout<<"数组下标越界"<<endl;
exit(0);
}
if(j>=1)arr[rowTable[i-1]+j-i]=item;
}
template <class T>
T TriMat<T>::GetEle(int i,int j)const;
{
if((i<1||i>n)||(j<1||j>n))
{
cout<<"数组下标越界"<<endl;
exit(0);
}
if(j>=i)return arr[rowTabl[i-1]+j-i];
else return 0;
}
template <class T>
TriMat<T> TriMat<T>::operator+(const TriMat<T> &a)const
{
T itemCurr,itemA;
TriMat<T>b(a,n);
for (int i=1;i<=n;i++)
{
for (int j=1;i<=n;j++)
{
itemCurr=GetEle(i,j);
itemA=a.GetEle(i,j);
b.PutEle(ietmCurr=itemA,i,j);
}
}
template <class T>
TriMat<T>::operator-(const TriMat<T> &a)const
{
T itemCurr,itemA;
TriMat<T>b(a,n);
for (int i=1;i<=n;i++)
{
for (int j=i;j<=n;j++)
{
itemCurr=GetEle(i,j);
itemA=a.GetEle(i,j);
b.PutEle(itemCurr-itemA,i,j);
}
}
return b;
}
template <class T>
TriMat<T>::operator*(const TriMat<T> &a)const
{
T itemCurr,itemA,itemB;
TriMat<T>b(a,n);
for (int i=1;i<=n;i++)
{
for (int j=i;j<=n;j++)
{
itemB=0;
for (int k=i;k<=j;k++)
{
itemCurr=GetEle(i,k);
itemA=a.GetEle(k,j);
itemB+=itemCurr*itemA;
}
b.PutEle(itemB,i,j);
}
}
template <class T>
void TriMat<T>::ReadMat(void)
{
T item;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
cin>>item;
PutEle(item,i,j);
}
}
}
template <class T>
void TriMat<T>::WriteMat(void)const
{
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
cout<<setw(7)<<GetEle(i,j);
cout<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -