资源简介
编写一个实现n维向量各种操作的类,功能包括:
(1) 构造函数实现n维向量的初始化构造,这里n可变;
(2) 析构函数实现向量动态内存的释放;
(3) 拷贝构造函数实现向量的拷贝构造;
(4) 重载赋值运算符'=',实现两个向量之间的赋值;
(5) 编写成员函数求两个向量的内积;
(6) 编写成员函数求两个向量的外积;
(7) 编写成员函数求两个向量的和;
(8) 编写成员函数求两个向量的差;
(9) 编写成员函数判断两个向量之间的线性相关性。
(10) 编写一个主函数测试向量类的上述功能。
代码片段和文件信息
/*////////////////////////////
3.向量类的设计与实现
编写一个实现n维向量各种操作的类,功能包括:
(1) 构造函数实现n维向量的初始化构造,这里n可变;
(2) 析构函数实现向量动态内存的释放;
(3) 拷贝构造函数实现向量的拷贝构造;
(4) 重载赋值运算符‘=‘,实现两个向量之间的赋值;
(5) 编写成员函数求两个向量的内积;
(6) 编写成员函数求两个向量的外积;
(7) 编写成员函数求两个向量的和;
(8) 编写成员函数求两个向量的差;
(9) 编写成员函数判断两个向量之间的线性相关性。
(10) 编写一个主函数测试向量类的上述功能。
////////////////////////////////////////////////////*/
#include
class Vector
{
int *data; //向量各维数值指针
int length; //向量维数
public:
Vector() {data=NULL; length=0;} //默认构造函数
Vector(int len);
~Vector() { if(data!=NULL) delete data; } //析构函数实现向量动态内存的释放
Vector(Vector&t);
int &operator[](int x);
Vector &operator=(Vector &v);
int InnerProduct(Vector &v);
void OuterProduct(Vector &v);
Vector operator+(Vector &v);
Vector operator-(Vector &v);
void Linearly(Vector &v);
friend ostream& operator<<(ostream &outputVector &v);//友员函数实现向量输出
};
//构造函数实现n维向量的初始化构造
Vector::Vector(int len)
{
data=new int[len];
length=len;
}
//拷贝构造函数实现向量的拷贝构造
Vector::Vector(Vector&t)
{
length=t.length;
data=new int[t.length];
for(int i=0;i data[i]=t.data[i];
}
//重载赋值运算符‘=‘,实现两个向量之间的赋值
Vector &Vector::operator=(Vector&v)
{
length=v.length;
data=new int[v.length];
for(int i=0;i data[i]=v.data[i];
return *this;
}
//成员函数求两个向量的内积
int Vector::InnerProduct( Vector &v)
{
int sum=0;
for(int i=0;i {
sum=sum+data[i]*v.data[i];
}
return sum;
}
//成员函数求两个向量的外积
void Vector::OuterProduct(Vector &v)
{
int i;
cout<<“|“;
for(i=0;i cout<<“i“< cout<<“|“< for(i=0;i cout< cout<<“|“< for(i=0;i cout< cout<<“|“< }
//重载赋值运算符‘<<‘,实现向量输出
ostream& operator<<(ostream &outputVector&v)
{
output<<“{“;
for(int i=0;i output< output<<“}“;
return output;
}
//重载赋值运算符‘[]‘,实现向量各维数赋值
int &Vector::operator [](int x)
{
if(x return data[x];
}
//重载赋值运算符‘+‘,实现求两个向量的和
Vector Vector ::operator+(Vector&v)
{
Vector Temp(length);
for(int i=0;i Temp.data[i]=data[i]+v.data[i];
return Temp;
}
//重载赋值运算符‘-‘,实现求两个向量的差
Vector Vector ::operator-(Vector&v)
{
Vector Temp(length);
for(int i=0;i Temp.data[i]=data[i]-v.data[i];
return Temp;
}
//成员函数判断两个向量之间的线性相关性
void Vector::Linearly(Vector &v)
{
int k; //非线性相关时令k=0
if (length!=v.length)
{
cout<<“非线性相关“< k=0;
}
if (k!=0)
for(int i=0;i {
if(data[i]/v.data[i]!=data[i+1]/v.data[i+1])
{
cout<<“非线性相关“< k=0;
}
}
if(k!=0) cout<<“线性相关“<
}
//主函数测试向量类的上述功能
void main()
{
Vector v1(5)v2v3v4v5v6(4);
v1[0] = 11;
v1[1] = 12;
v1[2] = 13;
v1[3] = 14;
v1[4] = 15;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4489 2020-03-17 17:07 向量类的设计与实现 VC++6.0.cpp
相关资源
- KLT算法c++实现
- RSA加解密源码VC++实现
- mfc实现画图板源码+实验报告
- libstdc++-libc6.2-2.so.3.tar.gz
- C++ OOP实现贪吃蛇,EASYX图形界面
- c++ primer 第五版 中文版 源代码
- c++函数模板和类模板计实验报告
- c++试题哈工大
- 教室信息管理系统
- C++面向对象程序设计2007龚晓庆
- 酒店管理系统源码完整版C++
- C++大作业之员工管理系统
- DAA算法 VC++实现 画线
- 模糊c均值聚类+FCM算法的c++代码
- 数据结构C++版课后题答案
- C++公司人事管理课程设计
- 调节系统音量调节麦克风音量
- 最长公共子序列—c++实现
- C++最小二乘法拟合直线
- c++primerplus(第六版)课后编程练习答
- 多元线性回归c++算法
- 远程桌面(带C++源码)
- n个数冒泡排序法
- 24点算法 C++实现
- 学生信息查询系统c++builder
- C++ MP3播放器
- 用回溯法求子集和的c++代码
- 最小生成树的源代码(C++实现)
- C++编写的简单仓库管理系统
- 优秀开源项目基于VC++和MFC基于VC++和
评论
共有 条评论