ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:17.26KB ,
资源ID:21248599      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21248599.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(矩阵类 重载Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

矩阵类 重载Word文件下载.docx

1、/两参数构造函数 Matrix(int r,int c):rows(r),cols(c) if(rowsMAX_SIZE|rowsMAX_SIZE|cols1) throw Outofrange();mem=new T rows*cols;if(mem=NULL) throw Outofrange(); /四参数构造函数 Matrix(int r,int c,T *data,int size=0):if(size & sizesizeof(rows*cols)/sizeof(int) throw Outofrange();if(mem=NULL) throw Wrongmem();for(in

2、t i=0;irows*cols;i+) memi=datai;/析构函数 Matrix()delete mem;T setrows()constreturn rows;T setcols()constreturn cols;/修改矩阵 void setMatrix(T *data,int size);void setMatrix(T *data);/重载函数调用运算符() T &operator()(int i,int j);/拷贝构造函数 Matrix(const Matrix &x);/重载赋值运算符 Matrix operator=(Matrix/重载转置! operator!();/

3、重载+ operator+(const Matrix/重载- operator-(const Matrix/重载* operator*(const Matrix/重载求负- operator-();private:T *mem;const int rows,cols;/*函数实现*/ template void Matrixsize) throw Outofrange();size;setMatrix(T *data) operator()(int i,int j) if(i=rows|j=cols) throw Outofrange();else return memi*cols+j;/重载

4、输入运算符 istream &operator (istream &in,Matrixx) x.setrows();for(int j=0;jx(i,j);return in;/重载输出ostream &operator(ostream &out,Matrixoutx(i,j) ;endl;return out;x):rows(x.rows),cols(x.cols) if(mem=NULL) throw Differ();else x.rows*x.cols;memi=x.memi;/重载附值运算符= Matrixoperator=(Matrixif(rows!=x.rows|cols!=x

5、.cols)throw Differ();if(this!=&delete mem;return *this;operator!() temp(cols,rows);cols;rows;temp(i,j)=(*this)(j,i);return temp;operator+(const Matrixint i; temp(*this);if(rows=x.rows&cols=x.cols) for(i=0;temp.memi=memi+x.memi;else throw Differ();operator-(const Matrix# 3/重载矩阵乘法运算符* operator*(const

6、Matrixif(cols!=x.rows) throw Differ(); temp(rows,x.cols);x.cols;temp(i,j)=0;for(int k=0;k m0(0,3);catch(.) cout执行语句Matrix输入矩阵 cinm1;/利用已重载的输出运算符输出矩阵 Matrix m1(3,3):/利用拷贝构造函数构造矩阵m2(3行3列) m2(m1);Matrix m2(m1):m2;int a=9,8,7,6,5,4,3,2,1;/* * 定义3行3列的空矩阵m3,并用数组a进行初始化 * * 等价于下述语句: * * Matrix m3(3,3,a,size

7、of(a)/sizeof(int);* 构造函数的最后一个参数为数组的长度,默认值为0 * * 当数组长度参数非0时将进行数组长度和矩阵元素个数的匹配检查!*/ m3(3,3,a); m3(3,3,a):m3;m3=-m1; /求负(矩阵所有元素取相反值) Matrix m3=-m1:m3=m1=m1; /与C+一样允许连续赋值!Matrix m3=m1=m1:按任意键继续.ngetch();/矩阵转置,等价于:m2=m1.transpose();m2=!Matrix m2=!m1:m2.setMatrix(a); /用数组a修改矩阵m2各元素的值 Matrix m2.setMatrix(a)

8、:m2=m1+m1; /矩阵加 Matrix m2=m1+m1:m3=m1*m2; /矩阵乘 Matrix m3=m1*m2:m3=m3-m2; /矩阵减 Matrix m3=m3-m2: m4(4,5),m5(5,4);/利用已重载的运算符()直接给矩阵m4赋值 for (int i=0;m4.setrows();+i) for (int j=0;m4.setcols();+j) m4(i,j)=(i+1)*(j+1);Matrix m4:m4;/m4矩阵空间大于存放矩阵m3所有元素的空间 m4=m3;Matrix m4=m3:/允许元素个数不相同的矩阵进行赋值!/只要求目标矩阵的容量足够存

9、放源矩阵的所有元素就允许赋值!catch (.) n执行语句m4=m3;导致矩阵的大小错误异常!nn/不允许元素个数不相同的矩阵进行赋值时输出该信息!int b=0,1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1,0;/用数组b修改矩阵m4各元素的值,同时进行个数匹配检查 m4.setMatrix(b,sizeof(b)/sizeof(int);m4.setMatrix(b,sizeof(b)/sizeof(int):/重载运算符!实现矩阵转置,与成员函数transpose()功能一致!m5=!Matrix m5=!m4:m5;Matrix m5*m4:m5*m4;Ma

10、trix m4*m5:m4*m5;/第1个矩阵的列数不等于第2个矩阵的行数 m4*m4;执行语句cout导致矩阵的大小(不匹配)错误异常!/超过矩阵m4的最大行、列数 for (i=0;=m4.setrows();=m4.setcols();执行上述程序段将导致下标(访问)越界异常!/数组长度不足于给矩阵m4的所有元素赋值 m4.setMatrix(a,sizeof(a)/sizeof(int);执行语句m4.setMatrix(a,sizeof(a)/sizeof(int) );导致数组长度不足异常!/虽然数组b有足够的元素,但指定的长度小于矩阵m4的元素个数 m4.setMatrix(b,15);执行语句m4.setMatrix(b,15);/m3矩阵不足于存放矩阵m4的所有元素 m3=m4;执行语句m3=m4;/第1个矩阵的列数必须等于第2个矩阵的行数才能相乘 m3=m1*m4;执行语句m3=m1*m4;/两个矩阵的行数和列数必须完全一致才能相加 m3=m4+m1;执行语句m3=m4+m1;/两个矩阵的行数和列数必须完全一致才能相减 m3=m4-m1;执行语句m3=m4-m1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1