第九周项目四 向量的类
来源:互联网 发布:网络行为控制 编辑:程序博客网 时间:2024/05/17 01:27
问题及代码
ALL rights reserved. *文件名称: 初学对象9 作者:李长鸿 *完成时间:2015.5.13 *问题描述: 向量问题 */#include <iostream>using namespace std;class MyVector //定义向量类{public: MyVector(int m):num(m) { Array=new int[num]; int i; //构造函数,共有m个元素的向量,元素值预置为0 Array[num]=0; } MyVector(const MyVector &d) { int i; num=d.num; Array=new int[num]; Array[num]= {0}; } //复制构造函数 ~MyVector() { delete []Array; } //析构函数:释放动态数组所占用的存储空间 friend istream &operator>>(istream &input, MyVector &d); friend ostream &operator<<(ostream &output, const MyVector &d); friend MyVector operator+(const MyVector &d1,const MyVector &d2);//向量相加,对应位置上的元素相加 friend MyVector operator-(const MyVector &d1,const MyVector &d2);//向量相减,对应位置上的元素相减 bool operator==(const MyVector &d);//判断两个矩阵是否相等,即对应位置上的所有元素是否相等private: int *Array; //Array 为动态数组指针,指向向量占用内存的起始地址 int num; //向量中元素个数};istream &operator>>(istream&input,MyVector &d){ cout<<"有"<<d.num<<"个元素的向量"<<endl; int i; for(i=0; i<d.num; i++) input>>d.Array[i]; return input;}ostream&operator<<(ostream&output,const MyVector&d){ int i; for(i=0; i<d.num; i++)output<<d.Array[i]<<" "; output<<endl; return output;}MyVector operator+(const MyVector&d1,const MyVector&d2){<span style="color:#ff0000;">MyVector M=d1; if(d1.num==d2.num)</span> { int j; for(j=0; j<d1.num; j++) { M.Array[j]=d1.Array[j]+d2.Array[j]; } return M; } else cout<<"向量个数不一致,无法计算。";}MyVector operator-(const MyVector&d1,const MyVector&d2){<span style="color:#ff0000;">MyVector M=d1; if(d1.num==d2.num) {</span> int j; for(j=0; j<d1.num; j++) { M.Array[j]=d1.Array[j]-d2.Array[j]; } return M; } else cout<<"向量个数不一致,无法计算。";}bool MyVector::operator==(const MyVector &d){ int j; for(j=0; j<num; j++) if(Array[j]!=d.Array[j])return 0; return 1;}int main(){ MyVector d1(5),d2(5); cout<<"输入d1——"; cin>>d1; cout<<"输入d2——"; cin>>d2; cout<<"d1="<<d1<<endl; cout<<"d2="<<d2<<endl; cout<<"d1+d2="<<d1+d2<<endl; cout<<"d1-d2="<<d1-d2<<endl; cout<<"d1"<<((d1==d2)?"==":"!=")<<"d2"<<endl; cout<<endl; return 0;}
总结:
MyVector operator+(const MyVector&d1,const MyVector&d2)
{
if(d1.num==d2.num)
{
MyVector M=d1;
int j;
for(j=0; j<d1.num; j++)
{
M.Array[j]=d1.Array[j]+d2.Array[j];
}
return M;
}
else cout<<"向量个数不一致,无法计算。";
}
MyVector operator-(const MyVector&d1,const MyVector&d2)
{
if(d1.num==d2.num)
{
MyVector M=d1;
int j;
for(j=0; j<d1.num; j++)
{
M.Array[j]=d1.Array[j]-d2.Array[j];
}
return M;
}
else cout<<"向量个数不一致,无法计算。";
}
按理说不应该啊,这个位置相调换了不应该会错啊。出这么个结果。。。。。
读题会错意,认为向量个数可能不一样,就考虑了谁多谁少,差个数的那部分值为0再相加的问题。比较麻烦。
0 0
- 第九周项目四 向量的类
- 第九周-项目四-向量类
- 第九周 项目四:向量类
- 第九周项目四:我的向量类
- 第九周项目四 我的向量类
- 第九周项目四我的向量类
- 第九周项目四--我的向量类
- 第九周项目四 我的向量类(MyVector)
- 第九周项目四我的向量类
- 第九周项目四:我的向量类
- 第九周项目四 我的向量类(MyVector)
- 第九周 项目四 我的向量类
- 第九周 项目四--我的向量类
- 15第九周项目四——我的向量类
- 第九周项目四——我的向量类(数组)
- 第九周 课后实践:项目四——我的向量类
- 第九周项目4-我的向量类
- 第九周 项目4 我的向量类
- 百度春招实习生面经分享
- 聚类分析学习笔记
- android蓝牙开发那点事
- ubuntu12.04下常用软件的安装(代码编译可能缺少这些软件无法通过)
- 洗车人家洗车加盟店让你在享受中轻松赚钱
- 第九周项目四 向量的类
- 1019. 数字黑洞 (20)
- Linux系统性能监控之Memory
- mongodb的连接问题,绑定IP惹的祸
- MongoDB之复制集(二)搭建
- 谈ISO9000-3内容及其与CMM关系
- 洗车人家汽车美容加盟帮你实现创业梦想
- Unity3D 场景导出成 XML或JSON 并解析还原场景
- XMind快捷键汇总