int main(){
char op;
while(cin >> op){
int n;
cin >> n;
//完成对整型的操作
int val;
T_Vector a(n), b(n);
for(int i = 0; i < n; ++i){
cin >> val;
a.append(val);//成员函数
}
for(int i = 0; i < n; ++i){
cin >> val;
b.append(val);
}
T_Vector res(n);
if(op == '+'){
res = a + b;//重载
}else if (op == '-'){
res = a - b;//重载
}
res.print(); //成员函数
}
return 0;
}
上个题目的代码你修改了吗?
如果要动态申请内存的话,用这个:
#include<iostream>
using namespace std;
template<typename T>
class T_Vector {
public:
T* p;
int k;//i = 0, k = 0;
T_Vector(T x = 0) {
k = 0;
if(x==0)
p = new T[100];
else
p = new T[x];
};
void append(T m) { p[k] = m;k++; };
void print() {
for (int i = 0; i < k; i++/*;*/) {
if(i<k-1)
cout << p[i] << " ";
else
cout << p[i] << endl;
}
}
T_Vector operator +(T_Vector h) { T_Vector res(k+1); for (int i = 0; i < k; i++/*;*/) { res.p[i] = p[i] + h.p[i]; }; return res; };
T_Vector operator -(T_Vector h) { T_Vector res(k+1); for (int i = 0; i < k; i++/*;*/) { res.p[i] = p[i] - h.p[i]; }; return res; };
};
int main() {
char op;
while (cin >> op) {
int n;
cin >> n;
//完成对整型的操作
int val;
T_Vector<int> a(n), b(n);
for (int i = 0; i < n; ++i) {
cin >> val;
a.append(val);//成员函数
}
for (int i = 0; i < n; ++i) {
cin >> val;
b.append(val);
}
T_Vector<int> res(n);
if (op == '+') {
res = a + b;//重载
}
else if (op == '-') {
res = a - b;//重载
}
res.print(); //成员函数
}
return 0;
}
T_Vector 是啥???
int n;这一步写在while循环外面比较好,如果输入多次的话n将被重复创建,理论上面相勃。严谨一点