資源簡介
編寫一個實現(xiàn)n維向量各種操作的類,功能包括:
(1) 構(gòu)造函數(shù)實現(xiàn)n維向量的初始化構(gòu)造,這里n可變;
(2) 析構(gòu)函數(shù)實現(xiàn)向量動態(tài)內(nèi)存的釋放;
(3) 拷貝構(gòu)造函數(shù)實現(xiàn)向量的拷貝構(gòu)造;
(4) 重載賦值運(yùn)算符'=',實現(xiàn)兩個向量之間的賦值;
(5) 編寫成員函數(shù)求兩個向量的內(nèi)積;
(6) 編寫成員函數(shù)求兩個向量的外積;
(7) 編寫成員函數(shù)求兩個向量的和;
(8) 編寫成員函數(shù)求兩個向量的差;
(9) 編寫成員函數(shù)判斷兩個向量之間的線性相關(guān)性。
(10) 編寫一個主函數(shù)測試向量類的上述功能。

代碼片段和文件信息
/*////////////////////////////
??3.向量類的設(shè)計與實現(xiàn)
編寫一個實現(xiàn)n維向量各種操作的類,功能包括:
(1) 構(gòu)造函數(shù)實現(xiàn)n維向量的初始化構(gòu)造,這里n可變;
(2) 析構(gòu)函數(shù)實現(xiàn)向量動態(tài)內(nèi)存的釋放;
(3) 拷貝構(gòu)造函數(shù)實現(xiàn)向量的拷貝構(gòu)造;
(4) 重載賦值運(yùn)算符‘=‘,實現(xiàn)兩個向量之間的賦值;
(5) 編寫成員函數(shù)求兩個向量的內(nèi)積;
(6) 編寫成員函數(shù)求兩個向量的外積;
(7) 編寫成員函數(shù)求兩個向量的和;
(8) 編寫成員函數(shù)求兩個向量的差;
(9) 編寫成員函數(shù)判斷兩個向量之間的線性相關(guān)性。
(10) 編寫一個主函數(shù)測試向量類的上述功能。
////////////////////////////////////////////////////*/
#include?
class?Vector?
{?
int?*data;????????????????????????????????//向量各維數(shù)值指針
int?length;???????????????????????????????//向量維數(shù)
public:?
Vector()?{data=NULL;?length=0;}???????????//默認(rèn)構(gòu)造函數(shù)
Vector(int?len);?
~Vector()?{?if(data!=NULL)?delete?data;?}?//析構(gòu)函數(shù)實現(xiàn)向量動態(tài)內(nèi)存的釋放
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);//友員函數(shù)實現(xiàn)向量輸出
};?
//構(gòu)造函數(shù)實現(xiàn)n維向量的初始化構(gòu)造
Vector::Vector(int?len)?
{?
data=new?int[len];?
length=len;?
}?
//拷貝構(gòu)造函數(shù)實現(xiàn)向量的拷貝構(gòu)造
Vector::Vector(Vector&t)?
{?
length=t.length;?
data=new?int[t.length];?
for(int?i=0;i data[i]=t.data[i];?
}?
//重載賦值運(yùn)算符‘=‘,實現(xiàn)兩個向量之間的賦值
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;?
}?
//成員函數(shù)求兩個向量的內(nèi)積
int?Vector::InnerProduct(?Vector?&v)
{?
int?sum=0;
for(int?i=0;i {
sum=sum+data[i]*v.data[i];
}
return?sum;
}
//成員函數(shù)求兩個向量的外積
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<<“|“< }
//重載賦值運(yùn)算符‘<<‘,實現(xiàn)向量輸出
ostream&?operator<<(ostream?&outputVector&v)
{?
output<<“{“;
for(int?i=0;i output< output<<“}“;
return?output;?
}?
//重載賦值運(yùn)算符‘[]‘,實現(xiàn)向量各維數(shù)賦值
int?&Vector::operator?[](int?x)?
{?
if(x return?data[x];?
}?
//重載賦值運(yùn)算符‘+‘,實現(xiàn)求兩個向量的和
Vector?Vector?::operator+(Vector&v)?
{?
Vector?Temp(length);?
for(int?i=0;i Temp.data[i]=data[i]+v.data[i];?
return?Temp;?
}?
//重載賦值運(yùn)算符‘-‘,實現(xiàn)求兩個向量的差
Vector?Vector?::operator-(Vector&v)?
{?
Vector?Temp(length);?
for(int?i=0;i Temp.data[i]=data[i]-v.data[i];?
return?Temp;?
}
//成員函數(shù)判斷兩個向量之間的線性相關(guān)性
void?Vector::Linearly(Vector?&v)
{
int?k;??//非線性相關(guān)時令k=0
if?(length!=v.length)
{
cout<<“非線性相關(guān)“< k=0;
}
if?(k!=0)
for(int?i=0;i {
if(data[i]/v.data[i]!=data[i+1]/v.data[i+1])?
{
cout<<“非線性相關(guān)“< k=0;
}
}
if(k!=0)?cout<<“線性相關(guān)“<
}
//主函數(shù)測試向量類的上述功能
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??向量類的設(shè)計與實現(xiàn)?VC++6.0.cpp
評論
共有 條評論