您的位置:首页 > 编程语言 > C语言/C++

Problem C: C++第十章习题3

2013-04-20 01:31 423 查看

Problem C: C++第十章习题3

Time Limit: 1 Sec Memory Limit: 128 MB

Submit: 102 Solved: 53

[Submit][Status][Web
Board]

Description

类模板T_Vector实现向量运算的加减运算,在main函数中使用该类模板建立整型向量对象进行向量的加减运算。

Input

输入为若干组数据,每组数据用4行表示。第1行为1个字符(+、-中的一个),表示所要做的向量运算,第2行为一个小于100整数,表示向量的长度,第3行和第4行均为n个整数,各整数间用空格分隔,第3行和第4行表示两个向量。

Output

输出为若干组数据,每组数据用1行表示。输出长度为n的向量,向量的各分量之间用空格分隔(注意最后一个分量后不接空格)

Sample Input

+31 2 34 5 6-41 2 3 45 6 7 8

Sample Output

5 7 9-4 -4 -4 -4

HINT

[Submit][Status][Web
Board]

한국어 中文 فارسی English ไทย

#include <iostream>
using namespace std;

template <class T>
class T_Vector
{
protected:
T *t;
int n;
public:
T_Vector(int m):n(m)
{
t=new T
;
}
void getVector();
void showVector();
T_Vector operator +(T_Vector<T> &);
T_Vector operator -(T_Vector<T> &);
};

template <typename T> void  T_Vector<T>::getVector()
{
for (int i=0; i<n; i++)
{
cin>>t[i];
}
}

template<typename T> void  T_Vector<T>::showVector()
{
for (int i=0; i<n-1; i++)
{
cout<<t[i]<<" ";
}
cout<<t[n-1]<<endl;
}

template <typename T> T_Vector<T> T_Vector<T>::operator+(T_Vector<T> &v1)
{
T_Vector <T>v2(n);
for (int i=0; i<n; i++)
{
v2.t[i]=t[i]+v1.t[i];
}
return v2;
}

template <typename T> T_Vector<T> T_Vector<T>::operator-(T_Vector<T> &v1)
{
T_Vector <T>v2(n);
for (int i=0; i<n; i++)
{
v2.t[i]=t[i]-v1.t[i];
}
return v2;
}

int main()
{
char type;
int n;
while (cin>>type)
{
cin>>n;
if (type=='+')
{
T_Vector<int> v1(n);
v1.getVector();
T_Vector<int> v2(n);
v2.getVector();
v1=v1+v2;
v1.showVector();
}
if (type=='-')
{
T_Vector<int> v1(n);
v1.getVector();
T_Vector<int> v2(n);
v2.getVector();
v1=v1-v2;
v1.showVector();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: