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

📄 sparematrix.h

📁 三元组稀疏矩阵的加法和减法以及乘法的实现
💻 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 + -