• 大小: 4KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-13
  • 语言: C/C++
  • 标签: 向量类  VC++6.0  C++  

资源简介

编写一个实现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

评论

共有 条评论