#include<iostream>
using namespace std;
class vector{
public:
int *v;
int len;
public:
vector(int=1);
vector(const int *,int);
~vector();
int & operator[](int)const;
int operator()()const;
vector & operator=(const vector &);
friend vector operator+(const vector &,const vector &);
friend vector operator-(const vector &,const vector &);
friend vector operator *(const vector &,const vector &);
friend ostream & operator<<(ostream &output,vector &);
friend istream & operator>>(ostream &input,vector &);
bool operator==(const vector &)const;
};
vector::vector(int size){
if(size<=0||size>=100){
cout<<"The size of"<<size<<"is fail!\n";
exit(0);
}
v=new int[size];
for(int i=0;i<size;i++){
v[i]=0;
}
len=size;
}
using namespace std;
class vector{
public:
int *v;
int len;
public:
vector(int=1);
vector(const int *,int);
~vector();
int & operator[](int)const;
int operator()()const;
vector & operator=(const vector &);
friend vector operator+(const vector &,const vector &);
friend vector operator-(const vector &,const vector &);
friend vector operator *(const vector &,const vector &);
friend ostream & operator<<(ostream &output,vector &);
friend istream & operator>>(ostream &input,vector &);
bool operator==(const vector &)const;
};
vector::vector(int size){
if(size<=0||size>=100){
cout<<"The size of"<<size<<"is fail!\n";
exit(0);
}
v=new int[size];
for(int i=0;i<size;i++){
v[i]=0;
}
len=size;
}
vector::vector(const int *b,int size){
if(size<=0 || size>=100){
cout<<"The size of"<<size<<"is fail!\n";
exit(0);
}
v=new int[size];
len=size;
for(int i=0;i<size;i++){
v[i]=b[i];
}
}
if(size<=0 || size>=100){
cout<<"The size of"<<size<<"is fail!\n";
exit(0);
}
v=new int[size];
len=size;
for(int i=0;i<size;i++){
v[i]=b[i];
}
}
vector::~vector(){
delete[]v;
len=0;
}
delete[]v;
len=0;
}
int & vector::operator[](int i)const{
if(i>=0 && i<len)
return v[i];
cout<<"The subscript"<<i<<"is outside!\n";
exit(0);
}
if(i>=0 && i<len)
return v[i];
cout<<"The subscript"<<i<<"is outside!\n";
exit(0);
}
int vector::operator()()const{
return len;
}
return len;
}
vector & vector::operator=(const vector & B){
if(len==B.len){
for(int i=0;i<len;i++){
v[i]=B.v[i];
}
return *this;
}
else{
cout<<"operator=fail!\n";
exit(0);
}
}
if(len==B.len){
for(int i=0;i<len;i++){
v[i]=B.v[i];
}
return *this;
}
else{
cout<<"operator=fail!\n";
exit(0);
}
}
vector operator+(const vector & A,const vector & B){
int size=A();
int *T=new int [size];
if(size==B()){
for(int i=0;i<size;i++){
T[i]=A.v[i]+B.v[i];
}
return vector(T,size);
}
else cout<<"operator+fail!\n";
exit(0);
}
int size=A();
int *T=new int [size];
if(size==B()){
for(int i=0;i<size;i++){
T[i]=A.v[i]+B.v[i];
}
return vector(T,size);
}
else cout<<"operator+fail!\n";
exit(0);
}
vector operator-(const vector & A,const vector & B){
int size=A();
int *T=new int [size];
if(size==B()){
for(int i=0;i<size;i++){
T[i]=A.v[i]-B.v[i];
}
return vector(T,size);
}
else cout<<"operator-fail!\n";
exit(0);
}
int size=A();
int *T=new int [size];
if(size==B()){
for(int i=0;i<size;i++){
T[i]=A.v[i]-B.v[i];
}
return vector(T,size);
}
else cout<<"operator-fail!\n";
exit(0);
}
vector operator *(const vector & A,const vector & B){
int size=A();
int *T=new int [size];
if(size==B()){
for(int i=0;i<size;i++){
T[i]=A.v[i] * B.v[i];
}
return vector(T,size);
}
else cout<<"operator * fail!\n";
exit(0);
}
int size=A();
int *T=new int [size];
if(size==B()){
for(int i=0;i<size;i++){
T[i]=A.v[i] * B.v[i];
}
return vector(T,size);
}
else cout<<"operator * fail!\n";
exit(0);
}
ostream & operator<<(ostream & output,vector & A){
for(int i=0;i<A();i++){
cout<<A.v[i]<<" ";
}
return output;
}
for(int i=0;i<A();i++){
cout<<A.v[i]<<" ";
}
return output;
}
istream & operator>>(istream & input,vector & B){
for(int i=0;i<B();i++){
cin>>B.v[i];
}
return input;
}
for(int i=0;i<B();i++){
cin>>B.v[i];
}
return input;
}
int main(){
int k;
cout<<"input the length of vector:\n";
cin>>k;
vector A(k),B(k),C(k);
cout<<"input the elements of vector A:\n";
cin>>A;
cout<<"input the elements of vector B:\n";
cin>>B;
cin>>A;
cout<<"input the elements of vector B:\n";
cin>>B;
cout<<"output the elements of vector A:\n";
cout<<A<<endl;
cout<<"output the elements of vector B:\n";
cout<<B<<endl;
for(int i=0;i<A.len;i++){
C[i]=A[i] * 2;
}
cout<<"output the elements of vector A * 2:\n";
cout<<C<<endl;
cout<<A<<endl;
cout<<"output the elements of vector B:\n";
cout<<B<<endl;
for(int i=0;i<A.len;i++){
C[i]=A[i] * 2;
}
cout<<"output the elements of vector A * 2:\n";
cout<<C<<endl;
C=A * B;
cout<<"output the elements of vector A * B:\n";
cout<<C<<endl;
C=A + B;
cout<<"output the elements of vector A + B:\n";
cout<<C<<endl;
}
cout<<"output the elements of vector A * B:\n";
cout<<C<<endl;
C=A + B;
cout<<"output the elements of vector A + B:\n";
cout<<C<<endl;
}