4:编程填空:数组输出
描述
填写代码,创建Print模板类,要求对输入的字符串数组或整数数组,用模板类进行输出并自动换行
acuumulate原型
template<class _InIt,
class _Ty,
class _Fn2> inline
_Ty _Accumulate(_InIt _First, _InIt _Last, _Ty _Val, _Fn2 _Func)
{ // return sum of _Val and all in [_First, _Last), using _Func
for (; _First != _Last; ++_First)
_Val = _Func(_Val, *_First);
return (_Val);
}
代码
#include <iostream>
#include <string>
#include <numeric>
#include <algorithm>
using namespace std;
// 在此处补充你的代码
template<class T>
class Print{
public:
int num;
Print(int x) {
num = x;
}
Print<T>& operator+(const T &obj) {
num--;
cout << obj;
if (num==0) cout << endl;
return *this;
}
};
int main() {
string s[20];
int num[20];
int m, n;
while (cin >> m >> n) {
for (int i = 0; i < m; i++) {
cin >> s[i];
}
accumulate(s, s + m, Print<string>(m));
for (int i = 0; i < n; i++) {
cin >> num[i];
}
accumulate(num, num + n, Print<int>(n));
}
}