📄 sparematrix.h
字号:
#ifndef SPARE_MATRIX_H
#define SPARE_MATRIX_H
#include<iostream>
#include<cstdlib>
using namespace std;
template<class T>
struct Triple
{
int row,col;
T value;
Triple<T>& operator =(Triple<T>& x)
{
row = x.row;
col = x.col;
value = x.value;
return *this;
}
//Triple<T>& operator -(Triple<T>& x,Triple<T>& y);
};
template<class T>
class SpareMatrix
{
public:
SpareMatrix(int szmax = 50);//构造函数,最多可以存50个非零元素
SpareMatrix(SpareMatrix<T>& x);//复制构造函数
~SpareMatrix() //析构函数
{
delete []smArray;
}
int GetRows()
{
return Rows;
}
int GetCols()
{
return Cols;
}
int GetTerms()
{
return Terms;
}
Triple<T> GetsmArray()
{
return *smArray;
}
void Input(SpareMatrix<T>& M,int szmax = 50); //输入矩阵
void Output(SpareMatrix<T>& M); //输出矩阵
SpareMatrix<T> operator =(SpareMatrix<T>& x); //付值运算符重载
friend istream& operator >>(istream& in,SpareMatrix<T> M);
friend ostream& operator <<(ostream& out,const SpareMatrix<T> M);
friend SpareMatrix<T> Add(SpareMatrix<T> a,SpareMatrix<T> b);//矩阵c=a+b
friend SpareMatrix<T> Sub(SpareMatrix<T> a,SpareMatrix<T> b);//矩阵c=a-b
friend SpareMatrix<T> Mul(SpareMatrix<T> a,SpareMatrix<T> b);//矩阵c=a*b
//private:
int Rows,Cols,Terms;
Triple<T>* smArray;
int *rowStart;
int maxTerms;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -